diff --git a/gtk/gtk.symbols b/gtk/gtk.symbols
index cdaf5ff..8ec8282 100644
--- a/gtk/gtk.symbols
+++ b/gtk/gtk.symbols
@@ -4387,7 +4387,9 @@ gtk_widget_has_grab
 gtk_widget_has_rc_style
 gtk_widget_has_screen
 gtk_widget_hide
+#ifndef GTK_DISABLE_DEPRECATED
 gtk_widget_hide_all
+#endif
 gtk_widget_hide_on_delete
 gtk_widget_intersect
 gtk_widget_is_ancestor
diff --git a/gtk/gtkcombobox.c b/gtk/gtkcombobox.c
index 64c8e05..0f1a1c9 100644
--- a/gtk/gtkcombobox.c
+++ b/gtk/gtkcombobox.c
@@ -2082,7 +2082,7 @@ gtk_combo_box_popdown (GtkComboBox *combo_box)
     return;
 
   gtk_device_grab_remove (priv->popup_window, priv->grab_pointer);
-  gtk_widget_hide_all (priv->popup_window);
+  gtk_widget_hide (priv->popup_window);
   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->button),
                                 FALSE);
 
diff --git a/gtk/gtkcontainer.c b/gtk/gtkcontainer.c
index d1e8da5..9bf7e47 100644
--- a/gtk/gtkcontainer.c
+++ b/gtk/gtkcontainer.c
@@ -2553,7 +2553,7 @@ gtk_container_hide_all (GtkWidget *widget)
 
   gtk_widget_hide (widget);
   gtk_container_foreach (GTK_CONTAINER (widget),
-			 (GtkCallback) gtk_widget_hide_all,
+			 (GtkCallback) _gtk_widget_hide_all,
 			 NULL);
 }
 
diff --git a/gtk/gtkmenu.c b/gtk/gtkmenu.c
index e999994..3f07513 100644
--- a/gtk/gtkmenu.c
+++ b/gtk/gtkmenu.c
@@ -4950,7 +4950,7 @@ static void
 gtk_menu_hide_all (GtkWidget *widget)
 {
   /* Hide children, but not self. */
-  gtk_container_foreach (GTK_CONTAINER (widget), (GtkCallback) gtk_widget_hide_all, NULL);
+  gtk_container_foreach (GTK_CONTAINER (widget), (GtkCallback) gtk_widget_hide, NULL);
 }
 
 /**
diff --git a/gtk/gtkmenuitem.c b/gtk/gtkmenuitem.c
index 76fab0d..e2ee9c1 100644
--- a/gtk/gtkmenuitem.c
+++ b/gtk/gtkmenuitem.c
@@ -1893,9 +1893,9 @@ gtk_menu_item_hide_all (GtkWidget *widget)
   menu_item = GTK_MENU_ITEM (widget);
 
   /* hide children including submenu */
-  gtk_container_foreach (GTK_CONTAINER (widget), (GtkCallback) gtk_widget_hide_all, NULL);
+  gtk_container_foreach (GTK_CONTAINER (widget), (GtkCallback) _gtk_widget_hide_all, NULL);
   if (menu_item->submenu)
-    gtk_widget_hide_all (menu_item->submenu);
+    _gtk_widget_hide_all (menu_item->submenu);
 }
 
 static gboolean
diff --git a/gtk/gtktoolbar.c b/gtk/gtktoolbar.c
index 7042d47..6d3c025 100644
--- a/gtk/gtktoolbar.c
+++ b/gtk/gtktoolbar.c
@@ -3462,7 +3462,7 @@ toolbar_content_hide_all (ToolbarContent  *content)
   
   widget = toolbar_content_get_widget (content);
   if (widget)
-    gtk_widget_hide_all (widget);
+    _gtk_widget_hide_all (widget);
 }
 
 /*
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index 57ffdd6..9c09fc3 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -3333,19 +3333,11 @@ gtk_widget_show_all (GtkWidget *widget)
     class->show_all (widget);
 }
 
-/**
- * gtk_widget_hide_all:
- * @widget: a #GtkWidget
- * 
- * Recursively hides a widget and any child widgets.
- **/
 void
-gtk_widget_hide_all (GtkWidget *widget)
+_gtk_widget_hide_all (GtkWidget *widget)
 {
   GtkWidgetClass *class;
 
-  g_return_if_fail (GTK_IS_WIDGET (widget));
-
   if (gtk_widget_get_no_show_all (widget))
     return;
 
@@ -3355,6 +3347,24 @@ gtk_widget_hide_all (GtkWidget *widget)
     class->hide_all (widget);
 }
 
+
+/**
+ * gtk_widget_hide_all:
+ * @widget: a #GtkWidget
+ * 
+ * Recursively hides a widget and any child widgets.
+ *
+ * Deprecated: 2.22: Hide the toplevel with gtk_widget_hide() or
+ * selectively hide the widgets you care about.
+ **/
+void
+gtk_widget_hide_all (GtkWidget *widget)
+{
+  g_return_if_fail (GTK_IS_WIDGET (widget));
+
+  _gtk_widget_hide_all (widget);
+}
+
 /**
  * gtk_widget_map:
  * @widget: a #GtkWidget
diff --git a/gtk/gtkwidget.h b/gtk/gtkwidget.h
index f42fa25..7865bbf 100644
--- a/gtk/gtkwidget.h
+++ b/gtk/gtkwidget.h
@@ -360,7 +360,9 @@ struct _GtkWidgetClass
   void (* show)		       (GtkWidget        *widget);
   void (* show_all)            (GtkWidget        *widget);
   void (* hide)		       (GtkWidget        *widget);
+#if !defined (GTK_DISABLE_DEPRECATED) || defined (GTK_COMPILATION)
   void (* hide_all)            (GtkWidget        *widget);
+#endif
   void (* map)		       (GtkWidget        *widget);
   void (* unmap)	       (GtkWidget        *widget);
   void (* realize)	       (GtkWidget        *widget);
@@ -565,7 +567,9 @@ void	   gtk_widget_show		  (GtkWidget	       *widget);
 void       gtk_widget_show_now            (GtkWidget           *widget);
 void	   gtk_widget_hide		  (GtkWidget	       *widget);
 void	   gtk_widget_show_all		  (GtkWidget	       *widget);
+#ifndef GTK_DISABLE_DEPRECATED
 void	   gtk_widget_hide_all		  (GtkWidget	       *widget);
+#endif
 void       gtk_widget_set_no_show_all     (GtkWidget           *widget,
 					   gboolean             no_show_all);
 gboolean   gtk_widget_get_no_show_all     (GtkWidget           *widget);
@@ -995,6 +999,8 @@ void         _gtk_widget_buildable_finish_accelerator (GtkWidget *widget,
 						       GtkWidget *toplevel,
 						       gpointer   user_data);
 
+void _gtk_widget_hide_all                  (GtkWidget *widget);
+
 G_END_DECLS
 
 #endif /* __GTK_WIDGET_H__ */
