diff --git a/gnome-panel/panel-toplevel.c b/gnome-panel/panel-toplevel.c
index da04903..f6a6bc1 100644
--- a/gnome-panel/panel-toplevel.c
+++ b/gnome-panel/panel-toplevel.c
@@ -4553,15 +4553,19 @@ panel_toplevel_set_expand (PanelToplevel *toplevel,
 		switch (toplevel->priv->orientation) {
 		case PANEL_ORIENTATION_TOP:
 			panel_toplevel_set_x (toplevel, 0, -1, TRUE);
+			panel_toplevel_set_y (toplevel, 0, -1, FALSE);
 			break;
 		case PANEL_ORIENTATION_BOTTOM:
-			panel_toplevel_set_x (toplevel, 0, 0, TRUE);
+			panel_toplevel_set_x (toplevel, 0, -1, TRUE);
+			panel_toplevel_set_y (toplevel, 0, 0, FALSE);
 			break;
 		case PANEL_ORIENTATION_LEFT:
+			panel_toplevel_set_x (toplevel, 0, -1, FALSE);
 			panel_toplevel_set_y (toplevel, 0, -1, TRUE);
 			break;
 		case PANEL_ORIENTATION_RIGHT:
-			panel_toplevel_set_y (toplevel, 0, 0, TRUE);
+			panel_toplevel_set_x (toplevel, 0, 0, FALSE);
+			panel_toplevel_set_y (toplevel, 0, -1, TRUE);
 			break;
 		default:
 			g_assert_not_reached ();
