Index: panel-widget.c
===================================================================
--- panel-widget.c	(révision 10470)
+++ panel-widget.c	(copie de travail)
@@ -1413,7 +1413,10 @@ panel_widget_size_allocate(GtkWidget *wi
 			else
 				ad->cells = chreq.height;
 
-			ad->min_cells = ad->cells;
+			if (!ad->expand_major || !ad->size_hints)
+				ad->min_cells = ad->cells;
+			else
+				ad->min_cells = ad->size_hints [ad->size_hints_len - 1];
 
 			ad->constrained = ad->pos;
 
@@ -1432,7 +1435,7 @@ panel_widget_size_allocate(GtkWidget *wi
 			int cells;
 			
 			if (ad->constrained + ad->min_cells > i)
-				ad->constrained = i - ad->min_cells;
+				ad->constrained = MAX (i - ad->min_cells, 0);
 			
 			if (ad->expand_major) {
 				cells = (i - ad->constrained) - 1;
@@ -1440,6 +1443,7 @@ panel_widget_size_allocate(GtkWidget *wi
 				if (ad->size_hints) 
 					cells = get_size_from_hints (ad, cells);
 				cells = MAX (cells, ad->min_cells);
+				cells = MIN (cells, panel->size);
 
 				ad->cells = cells;
 			}
