Index: gtk/gtklabel.c
===================================================================
--- gtk/gtklabel.c	(révision 18381)
+++ gtk/gtklabel.c	(copie de travail)
@@ -798,6 +798,7 @@ gtk_label_init (GtkLabel *label)
 
   label->use_underline = FALSE;
   label->use_markup = FALSE;
+  label->pattern_set = FALSE;
   
   label->mnemonic_keyval = GDK_VoidSymbol;
   label->layout = NULL;
@@ -1537,6 +1538,9 @@ gtk_label_set_pattern_internal (GtkLabel
 
   g_return_if_fail (GTK_IS_LABEL (label));
 
+  if (label->pattern_set)
+    return;
+
   g_object_get (gtk_widget_get_settings (GTK_WIDGET (label)),
 		"gtk-enable-mnemonics", &enable_mnemonics,
 		NULL);
@@ -1557,7 +1561,15 @@ gtk_label_set_pattern (GtkLabel	   *labe
 {
   g_return_if_fail (GTK_IS_LABEL (label));
   
-  gtk_label_set_pattern_internal (label, pattern);
+  label->pattern_set = FALSE;
+
+  if (pattern)
+    {
+      gtk_label_set_pattern_internal (label, pattern);
+      label->pattern_set = TRUE;
+    }
+  else
+    gtk_label_recalculate (label);
 
   gtk_label_clear_layout (label);  
   gtk_widget_queue_resize (GTK_WIDGET (label));
Index: gtk/gtklabel.h
===================================================================
--- gtk/gtklabel.h	(révision 18381)
+++ gtk/gtklabel.h	(copie de travail)
@@ -62,6 +62,7 @@ struct _GtkLabel
   guint   have_transform   : 1;
   guint   in_click         : 1;
   guint   wrap_mode        : 3;
+  guint   pattern_set      : 1;
 
   guint   mnemonic_keyval;
   
Index: ChangeLog
===================================================================
--- ChangeLog	(révision 18381)
+++ ChangeLog	(copie de travail)
@@ -1,3 +1,13 @@
+2007-07-04  Vincent Untz  <vuntz@gnome.org>
+
+	* gtklabel.[ch]: use a bit of the GtkLabel public structure to
+	remember that a pattern has been set
+	(gtk_label_set_pattern_internal): don't do anything if a specific
+	pattern has been set
+	(gtk_label_set_pattern): set the new bit to TRUE when setting a
+	pattern, and recalculate everything if the pattern is unset.
+	Fix gtk_label_set_pattern() not working anymore. (#452861)
+
 Wed Jul  4 12:20:23 2007  Tim Janik  <timj@imendio.com>
 
 	* gdk/gdkevents.c (gdk_event_request_motions): added usage example
