Index: gtk/gtktreeviewcolumn.c
===================================================================
--- gtk/gtktreeviewcolumn.c	(revision 4354)
+++ gtk/gtktreeviewcolumn.c	(working copy)
@@ -850,7 +850,7 @@ gtk_tree_view_column_create_button (GtkT
 		    G_CALLBACK (gtk_tree_view_column_button_clicked),
 		    tree_column);
 
-  tree_column->alignment = gtk_alignment_new (tree_column->xalign, 0.5, 0.0, 0.0);
+  tree_column->alignment = gtk_alignment_new (tree_column->xalign, 0.5, 1.0, 1.0);
 
   hbox = gtk_hbox_new (FALSE, 2);
   tree_column->arrow = gtk_arrow_new (GTK_ARROW_DOWN, GTK_SHADOW_IN);
@@ -907,7 +907,7 @@ gtk_tree_view_column_update_button (GtkT
 
   /* Set up the actual button */
   gtk_alignment_set (GTK_ALIGNMENT (alignment), tree_column->xalign,
-		     0.5, 0.0, 0.0);
+		     0.5, 1.0, 1.0);
       
   if (tree_column->child)
     {
@@ -917,6 +917,7 @@ gtk_tree_view_column_update_button (GtkT
 				current_child);
 	  gtk_container_add (GTK_CONTAINER (alignment),
 			     tree_column->child);
+	  current_child = tree_column->child;
 	}
     }
   else 
@@ -939,6 +940,13 @@ gtk_tree_view_column_update_button (GtkT
 					  "");
     }
 
+  if (GTK_IS_MISC (current_child))
+    {
+      gfloat yalign;
+      gtk_misc_get_alignment (GTK_MISC (current_child), NULL, &yalign);
+      gtk_misc_set_alignment (GTK_MISC (current_child), tree_column->xalign, yalign);
+    }
+
   switch (tree_column->sort_order)
     {
     case GTK_SORT_ASCENDING:
