Index: gtk/gtkwidget.c
===================================================================
--- gtk/gtkwidget.c	(revision 20744)
+++ gtk/gtkwidget.c	(working copy)
@@ -2478,6 +2478,13 @@
       tooltip_window = g_object_get_qdata (object, quark_tooltip_window);
       tooltip_markup = g_value_dup_string (value);
 
+      /* Treat an empty string as a NULL string, 
+         because an empty string would be useless for a tooltip: */
+      if (tooltip_markup && (strlen (tooltip_markup) == 0)) {
+	g_free (tooltip_markup);
+        tooltip_markup = NULL;
+      }
+
       g_object_set_qdata_full (object, quark_tooltip_markup,
 			       tooltip_markup, g_free);
 
@@ -2486,7 +2493,14 @@
       break;
     case PROP_TOOLTIP_TEXT:
       tooltip_window = g_object_get_qdata (object, quark_tooltip_window);
+
       tooltip_text = g_value_get_string (value);
+
+      /* Treat an empty string as a NULL string, 
+         because an empty string would be useless for a tooltip: */
+      if (tooltip_text && (strlen (tooltip_text) == 0))
+        tooltip_text = NULL;
+
       tooltip_markup = tooltip_text ? g_markup_escape_text (tooltip_text, -1) : NULL;
 
       g_object_set_qdata_full (object, quark_tooltip_markup,
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 20744)
+++ ChangeLog	(working copy)
@@ -1,3 +1,12 @@
+2008-07-03  Murray Cumming  <murrayc@murrayc.com>
+
+	* gtk/gtkwidget.c (gtk_widget_set_property):  tooltip-text and 
+	tooltip-markup properties: Interpret an empty string as a NULL 
+	string because an empty tooltip is silly. This will help 
+	language bindings that do not bother to have the two types of 
+	empty/null strings.
+	Bug #541399.
+
 2008-07-03  Michael Natterer  <mitch@imendio.com>
 
 	* gtk/gtkscalebutton.c: remove "_from_bindings" suffix from the
