Index: gtklabel.c
===================================================================
--- gtklabel.c	(revision 20059)
+++ gtklabel.c	(working copy)
@@ -2661,6 +2661,7 @@
   GtkLabelPrivate *priv;
   gfloat xalign;
   gint req_width, x, y;
+  PangoRectangle logical;
   
   misc = GTK_MISC (label);
   widget = GTK_WIDGET (label);
@@ -2674,7 +2675,6 @@
   if (label->ellipsize || priv->width_chars > 0)
     {
       int width;
-      PangoRectangle logical;
 
       width = pango_layout_get_width (label->layout);
       pango_layout_get_pixel_extents (label->layout, NULL, &logical);
@@ -2687,6 +2687,7 @@
   else
     req_width = widget->requisition.width;
 
+  pango_layout_get_pixel_extents (label->layout, NULL, &logical);
   x = floor (widget->allocation.x + (gint)misc->xpad +
 	      xalign * (widget->allocation.width - req_width));
 
@@ -2694,6 +2695,7 @@
     x = MAX (x, widget->allocation.x + misc->xpad);
   else
     x = MIN (x, widget->allocation.x + widget->allocation.width - misc->xpad);
+  x -= logical.x;
 
   y = floor (widget->allocation.y + (gint)misc->ypad 
              + MAX (((widget->allocation.height - widget->requisition.height) * misc->yalign),
