Index: gtk/gtklabel.c
===================================================================
--- gtk/gtklabel.c	(revision 17330)
+++ gtk/gtklabel.c	(working copy)
@@ -866,6 +866,33 @@
   return GTK_WIDGET (label);
 }
 
+/**
+ * gtk_label_new_with_markup:
+ * @str: The markup string of the label
+ *
+ * Creates a new label with the given markup text inside it. This function
+ * will always set "use-markup" property to %TRUE, even if you pass %NULL
+ * to get an empty label widget. See gtk_label_set_markup() for more details.
+ *
+ * Return value: the new #GtkLabel
+ *
+ * Since: 2.10
+ **/
+GtkWidget*
+gtk_label_new_with_markup (const gchar *str)
+{
+  GtkLabel *label;
+  
+  label = g_object_new (GTK_TYPE_LABEL, NULL);
+
+  if (str && *str)
+    gtk_label_set_markup (label, str);
+  else
+    gtk_label_set_use_markup (label, TRUE);
+  
+  return GTK_WIDGET (label);
+}
+
 static gboolean
 gtk_label_mnemonic_activate (GtkWidget *widget,
 			     gboolean   group_cycling)
@@ -1336,6 +1363,38 @@
 }
 
 /**
+ * gtk_label_set_label_printf:
+ * @label: a #GtkLabel
+ * @fmt: printf()-style format string
+ * @Varargs: arguments for @fmt
+ *
+ * This function is similar to gtk_label_set_label(), the only
+ * difference is that the label string is constructed in
+ * printf-like way. See g_strdup_vprintf().
+ *
+ * Since: 2.10
+ **/
+void
+gtk_label_set_label_printf (GtkLabel    *label,
+			    const gchar *fmt,
+			    ...)
+{
+  gchar *str;
+  va_list args;
+
+  g_return_if_fail (GTK_IS_LABEL (label));
+  g_return_if_fail (fmt != NULL);
+
+  va_start (args, fmt);
+  str = g_strdup_vprintf (fmt, args);
+  va_end (args);
+
+  gtk_label_set_label (label, str);
+
+  g_free (str);
+}
+
+/**
  * gtk_label_get_label:
  * @label: a #GtkLabel
  *
Index: gtk/gtklabel.h
===================================================================
--- gtk/gtklabel.h	(revision 17330)
+++ gtk/gtklabel.h	(working copy)
@@ -101,6 +101,7 @@
 GType                 gtk_label_get_type          (void) G_GNUC_CONST;
 GtkWidget*            gtk_label_new               (const gchar   *str);
 GtkWidget*            gtk_label_new_with_mnemonic (const gchar   *str);
+GtkWidget*            gtk_label_new_with_markup   (const gchar   *str);
 void                  gtk_label_set_text          (GtkLabel      *label,
 						   const gchar   *str);
 G_CONST_RETURN gchar* gtk_label_get_text          (GtkLabel      *label);
@@ -109,6 +110,9 @@
 PangoAttrList        *gtk_label_get_attributes    (GtkLabel      *label);
 void                  gtk_label_set_label         (GtkLabel      *label,
 						   const gchar   *str);
+void		      gtk_label_set_label_printf  (GtkLabel      *label,
+						   const gchar   *fmt,
+						   ...) G_GNUC_PRINTF (2, 3);
 G_CONST_RETURN gchar *gtk_label_get_label         (GtkLabel      *label);
 void                  gtk_label_set_markup        (GtkLabel      *label,
 						   const gchar   *str);
