diff --git a/docs/reference/gtk/tmpl/gtkcombobox.sgml b/docs/reference/gtk/tmpl/gtkcombobox.sgml
index 37ee062..73c1474 100644
--- a/docs/reference/gtk/tmpl/gtkcombobox.sgml
+++ b/docs/reference/gtk/tmpl/gtkcombobox.sgml
@@ -88,6 +88,8 @@ gtk_combo_box_get_active_text().
 
 </para>
 
+@Deprecated: 2.20
+
 <!-- ##### ARG GtkComboBox:button-sensitivity ##### -->
 <para>
 
@@ -128,6 +130,8 @@ gtk_combo_box_get_active_text().
 
 </para>
 
+@Deprecated: 2.20
+
 <!-- ##### ARG GtkComboBox:wrap-width ##### -->
 <para>
 
@@ -380,7 +384,7 @@ gtk_combo_box_get_active_text().
 
 @combo_box: 
 @add_tearoffs: 
-
+@Deprecated: 2.20
 
 <!-- ##### FUNCTION gtk_combo_box_get_add_tearoffs ##### -->
 <para>
@@ -389,7 +393,7 @@ gtk_combo_box_get_active_text().
 
 @combo_box: 
 @Returns: 
-
+@Deprecated: 2.20
 
 <!-- ##### FUNCTION gtk_combo_box_set_title ##### -->
 <para>
diff --git a/docs/reference/gtk/tmpl/gtkmenu.sgml b/docs/reference/gtk/tmpl/gtkmenu.sgml
index c8d8376..afd3282 100644
--- a/docs/reference/gtk/tmpl/gtkmenu.sgml
+++ b/docs/reference/gtk/tmpl/gtkmenu.sgml
@@ -129,11 +129,15 @@ should be accessed using the functions below.
 
 </para>
 
+@Deprecated: 2.20
+
 <!-- ##### ARG GtkMenu:tearoff-title ##### -->
 <para>
 
 </para>
 
+@Deprecated: 2.20
+
 <!-- ##### ARG GtkMenu:bottom-attach ##### -->
 <para>
 
@@ -357,7 +361,7 @@ See gtk_menu_set_accel_group().
 
 @menu: 
 @Returns: 
-
+@Deprecated: 2.20
 
 <!-- ##### FUNCTION gtk_menu_set_reserve_toggle_size ##### -->
 <para>
@@ -425,7 +429,7 @@ or reattached.
 
 @menu: a #GtkMenu.
 @torn_off: If %TRUE, menu is displayed as a tearoff menu.
-
+@Deprecated: 2.20
 
 <!-- ##### FUNCTION gtk_menu_attach_to_widget ##### -->
 <para>
diff --git a/docs/reference/gtk/tmpl/gtktearoffmenuitem.sgml b/docs/reference/gtk/tmpl/gtktearoffmenuitem.sgml
index 2f2560b..703919d 100644
--- a/docs/reference/gtk/tmpl/gtktearoffmenuitem.sgml
+++ b/docs/reference/gtk/tmpl/gtktearoffmenuitem.sgml
@@ -6,22 +6,9 @@ A menu item used to tear off and reattach its menu
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-A #GtkTearoffMenuItem is a special #GtkMenuItem which is used to
-tear off and reattach its menu.
-</para>
-
-<para>
-When its menu is shown normally, the #GtkTearoffMenuItem is drawn as a 
-dotted line indicating that the menu can be torn off.  Activating it 
-causes its menu to be torn off and displayed in its own window 
-as a tearoff menu.
-</para>
-
-<para>
-When its menu is shown as a tearoff menu, the #GtkTearoffMenuItem is drawn
-as a dotted line which has a left pointing arrow graphic indicating that
-the tearoff menu can be reattached.  Activating it will erase the tearoff 
-menu window.
+  As of GTK+ 2.20, #GtkTearoffMenuItem is deprecated.  Since it is commonly
+  used to implement a toolbar-like UI, consider looking at #GtkToolPalette
+  instead.
 </para>
 
 <!-- ##### SECTION See_Also ##### -->
@@ -29,8 +16,6 @@ menu window.
 <variablelist>
 
 <varlistentry>
-<term>#GtkMenu</term>
-<listitem><para>for further discussion of menus in GTK.</para></listitem>
 </varlistentry>
 
 </variablelist>
@@ -52,5 +37,4 @@ Creates a new #GtkTearoffMenuItem.
 </para>
 
 @Returns: a new #GtkTearoffMenuItem.
-
-
+@Deprecated: 2.20: Don't use this widget anymore.
diff --git a/docs/reference/gtk/tmpl/gtkuimanager.sgml b/docs/reference/gtk/tmpl/gtkuimanager.sgml
index 22f5d8b..ee28482 100644
--- a/docs/reference/gtk/tmpl/gtkuimanager.sgml
+++ b/docs/reference/gtk/tmpl/gtkuimanager.sgml
@@ -314,6 +314,8 @@ members and should not be accessed directly.
 
 </para>
 
+@Deprecated: 2.20
+
 <!-- ##### ARG GtkUIManager:ui ##### -->
 <para>
 
@@ -335,6 +337,7 @@ members and should not be accessed directly.
 @self: 
 @add_tearoffs: 
 
+@Deprecated: 2.20
 
 <!-- ##### FUNCTION gtk_ui_manager_get_add_tearoffs ##### -->
 <para>
@@ -343,7 +346,7 @@ members and should not be accessed directly.
 
 @self: 
 @Returns: 
-
+@Deprecated: 2.20
 
 <!-- ##### FUNCTION gtk_ui_manager_insert_action_group ##### -->
 <para>
diff --git a/gtk/Makefile.am b/gtk/Makefile.am
index 4b1cede..da989b2 100644
--- a/gtk/Makefile.am
+++ b/gtk/Makefile.am
@@ -293,7 +293,6 @@ gtk_public_h_sources =          \
 	gtkstock.h		\
 	gtkstyle.h		\
 	gtktable.h		\
-	gtktearoffmenuitem.h    \
 	gtktestutils.h		\
 	gtktextbuffer.h		\
 	gtktextbufferrichtext.h	\
@@ -310,7 +309,7 @@ gtk_public_h_sources =          \
 	gtktoolbar.h		\
 	gtktoolbutton.h		\
 	gtktoolitem.h		\
-	gtktoolitemgroup.h		\	
+	gtktoolitemgroup.h		\
 	gtktoolpalette.h		\
 	gtktoolshell.h		\
 	gtktooltip.h		\
@@ -664,6 +663,7 @@ gtk_base_c_sources += \
 	gtkpreview.c		\
 	gtkprogress.c		\
 	gtksignal.c		\
+	gtktearoffmenu.c	\
 	gtktipsquery.c		\
 	gtktooltips.c
 
diff --git a/gtk/gtk.h b/gtk/gtk.h
index 07952be..9fd0063 100644
--- a/gtk/gtk.h
+++ b/gtk/gtk.h
@@ -172,7 +172,6 @@
 #include <gtk/gtkstock.h>
 #include <gtk/gtkstyle.h>
 #include <gtk/gtktable.h>
-#include <gtk/gtktearoffmenuitem.h>
 #include <gtk/gtktextbuffer.h>
 #include <gtk/gtktextbufferrichtext.h>
 #include <gtk/gtktextchild.h>
@@ -240,6 +239,7 @@
 #include <gtk/gtksignal.h>
 #include <gtk/gtktipsquery.h>
 #include <gtk/gtktooltips.h>
+#include <gtk/gtktearoffmenuitem.h>
 
 #undef __GTK_H_INSIDE__
 
diff --git a/gtk/gtk.symbols b/gtk/gtk.symbols
index 687c9ec..a3d3ca3 100644
--- a/gtk/gtk.symbols
+++ b/gtk/gtk.symbols
@@ -934,7 +934,9 @@ gtk_combo_box_append_text
 gtk_combo_box_get_active
 gtk_combo_box_get_active_iter
 gtk_combo_box_get_active_text
+#ifndef GTK_DISABLE_DEPRECATED
 gtk_combo_box_get_add_tearoffs
+#endif
 gtk_combo_box_get_column_span_column
 gtk_combo_box_get_focus_on_click
 gtk_combo_box_get_model
@@ -955,7 +957,9 @@ gtk_combo_box_prepend_text
 gtk_combo_box_remove_text
 gtk_combo_box_set_active
 gtk_combo_box_set_active_iter
+#ifndef GTK_DISABLE_DEPRECATED
 gtk_combo_box_set_add_tearoffs
+#endif
 gtk_combo_box_set_column_span_column
 gtk_combo_box_set_focus_on_click
 gtk_combo_box_set_model
@@ -2503,7 +2507,9 @@ gtk_menu_get_monitor
 gtk_menu_get_attach_widget
 gtk_menu_get_for_attach_widget
 gtk_menu_get_reserve_toggle_size
+#ifndef GTK_DISABLE_DEPRECATED
 gtk_menu_get_tearoff_state
+#endif
 gtk_menu_get_title
 gtk_menu_get_type G_GNUC_CONST
 gtk_menu_new
@@ -2517,7 +2523,9 @@ gtk_menu_set_active
 gtk_menu_set_monitor
 gtk_menu_set_reserve_toggle_size
 gtk_menu_set_screen
+#ifndef GTK_DISABLE_DEPRECATED
 gtk_menu_set_tearoff_state
+#endif
 gtk_menu_set_title
 #endif
 #endif
@@ -3887,10 +3895,12 @@ gtk_table_set_row_spacings
 
 #if IN_HEADER(__GTK_TEAROFF_MENU_ITEM_H__)
 #if IN_FILE(__GTK_TEAROFF_MENU_ITEM_C__)
+#ifndef GTK_DISABLE_DEPRECATED
 gtk_tearoff_menu_item_get_type G_GNUC_CONST
 gtk_tearoff_menu_item_new
 #endif
 #endif
+#endif
 
 #if IN_HEADER(__GTK_TEXT_TAG_H__)
 #if IN_FILE(__GTK_TEXT_TAG_C__)
@@ -4946,7 +4956,9 @@ gtk_ui_manager_ensure_update
 gtk_ui_manager_get_accel_group
 gtk_ui_manager_get_action
 gtk_ui_manager_get_action_groups
+#ifndef GTK_DISABLE_DEPRECATED
 gtk_ui_manager_get_add_tearoffs
+#endif
 gtk_ui_manager_get_toplevels
 gtk_ui_manager_get_type G_GNUC_CONST
 gtk_ui_manager_get_ui
@@ -4956,9 +4968,11 @@ gtk_ui_manager_new
 gtk_ui_manager_new_merge_id
 gtk_ui_manager_remove_action_group
 gtk_ui_manager_remove_ui
+#ifndef GTK_DISABLE_DEPRECATED
 gtk_ui_manager_set_add_tearoffs
 #endif
 #endif
+#endif
 
 #if IN_HEADER(__GTK_VBOX_H__)
 #if IN_FILE(__GTK_VBOX_C__)
diff --git a/gtk/gtkcombobox.c b/gtk/gtkcombobox.c
index ebe90d9..5af89cd 100644
--- a/gtk/gtkcombobox.c
+++ b/gtk/gtkcombobox.c
@@ -756,6 +756,7 @@ gtk_combo_box_class_init (GtkComboBoxClass *klass)
                                                      -1,
                                                      GTK_PARAM_READWRITE));
 
+#ifndef GTK_DISABLE_DEPRECATED
   /**
    * GtkComboBox:add-tearoffs:
    *
@@ -765,6 +766,7 @@ gtk_combo_box_class_init (GtkComboBoxClass *klass)
    * Note that this only affects menu style combo boxes.
    *
    * Since: 2.6
+   * Deprecated: 2.20
    */
   g_object_class_install_property (object_class,
                                    PROP_ADD_TEAROFFS,
@@ -773,7 +775,8 @@ gtk_combo_box_class_init (GtkComboBoxClass *klass)
 							 P_("Whether dropdowns should have a tearoff menu item"),
 							 FALSE,
 							 GTK_PARAM_READWRITE));
-  
+#endif /* GTK_DISABLE_DEPRECATED */
+
   /**
    * GtkComboBox:has-frame:
    *
@@ -798,6 +801,7 @@ gtk_combo_box_class_init (GtkComboBoxClass *klass)
 							 TRUE,
 							 GTK_PARAM_READWRITE));
 
+#ifndef GTK_DISABLE_DEPRECATED
   /**
    * GtkComboBox:tearoff-title:
    *
@@ -805,6 +809,7 @@ gtk_combo_box_class_init (GtkComboBoxClass *klass)
    * when the popup is torn-off.
    *
    * Since: 2.10
+   * Deprecated: 2.20
    */
   g_object_class_install_property (object_class,
                                    PROP_TEAROFF_TITLE,
@@ -813,6 +818,7 @@ gtk_combo_box_class_init (GtkComboBoxClass *klass)
                                                         P_("A title that may be displayed by the window manager when the popup is torn-off"),
                                                         NULL,
                                                         GTK_PARAM_READWRITE));
+#endif /* GTK_DISABLE_DEPRECATED */
 
 
   /**
@@ -5629,6 +5635,8 @@ gtk_combo_box_start_editing (GtkCellEditable *cell_editable,
  * Gets the current value of the :add-tearoffs property.
  * 
  * Return value: the current value of the :add-tearoffs property.
+ *
+ * Deprecated: 2.20
  */
 gboolean
 gtk_combo_box_get_add_tearoffs (GtkComboBox *combo_box)
@@ -5647,6 +5655,7 @@ gtk_combo_box_get_add_tearoffs (GtkComboBox *combo_box)
  * menu item.
  *
  * Since: 2.6
+ * Deprecated: 2.20
  */
 void
 gtk_combo_box_set_add_tearoffs (GtkComboBox *combo_box,
diff --git a/gtk/gtkcombobox.h b/gtk/gtkcombobox.h
index 1da1562..5b67e1c 100644
--- a/gtk/gtkcombobox.h
+++ b/gtk/gtkcombobox.h
@@ -82,9 +82,11 @@ gint          gtk_combo_box_get_column_span_column (GtkComboBox *combo_box);
 void          gtk_combo_box_set_column_span_column (GtkComboBox *combo_box,
                                                     gint         column_span);
 
+#ifndef GTK_DISABLE_DEPRECATED
 gboolean      gtk_combo_box_get_add_tearoffs       (GtkComboBox *combo_box);
 void          gtk_combo_box_set_add_tearoffs       (GtkComboBox *combo_box,
 						    gboolean     add_tearoffs);
+#endif /* GTK_DISABLE_DEPRECATED */
 
 G_CONST_RETURN gchar *gtk_combo_box_get_title      (GtkComboBox *combo_box);
 void                  gtk_combo_box_set_title      (GtkComboBox *combo_box,
diff --git a/gtk/gtkmenu.c b/gtk/gtkmenu.c
index 0bdf1de..e580cb5 100644
--- a/gtk/gtkmenu.c
+++ b/gtk/gtkmenu.c
@@ -550,6 +550,13 @@ gtk_menu_class_init (GtkMenuClass *class)
 						        GTK_TYPE_WIDGET,
 						        GTK_PARAM_READWRITE));
 
+
+#ifndef GTK_DISABLE_DEPRECATED
+  /**
+   * GtkMenu:tearoff-title:
+   *
+   * Deprecated: 2.20
+   **/
   g_object_class_install_property (gobject_class,
                                    PROP_TEAROFF_TITLE,
                                    g_param_spec_string ("tearoff-title",
@@ -564,6 +571,7 @@ gtk_menu_class_init (GtkMenuClass *class)
    * A boolean that indicates whether the menu is torn-off.
    *
    * Since: 2.6
+   * Deprecated: 2.20
    **/
   g_object_class_install_property (gobject_class,
                                    PROP_TEAROFF_STATE,
@@ -572,6 +580,7 @@ gtk_menu_class_init (GtkMenuClass *class)
 							 P_("A boolean that indicates whether the menu is torn-off"),
 							 FALSE,
 							 GTK_PARAM_READWRITE));
+#endif /* GTK_DISABLE_DEPRECATED */
 
   /**
    * GtkMenu:monitor:
@@ -1983,7 +1992,12 @@ tearoff_window_destroyed (GtkWidget *widget,
   gtk_menu_set_tearoff_state (menu, FALSE);
 }
 
-void       
+/**
+ * gtk_menu_set_tearoff_state:
+ *
+ * Deprecated: 2.20
+ */
+void
 gtk_menu_set_tearoff_state (GtkMenu  *menu,
 			    gboolean  torn_off)
 {
@@ -2099,6 +2113,8 @@ gtk_menu_set_tearoff_state (GtkMenu  *menu,
  * gtk_menu_set_tearoff_state ().
  *
  * Return value: %TRUE if the menu is currently torn off.
+ *
+ * Deprecated: 2.20
  **/
 gboolean
 gtk_menu_get_tearoff_state (GtkMenu *menu)
diff --git a/gtk/gtkmenu.h b/gtk/gtkmenu.h
index 694457a..0b872d5 100644
--- a/gtk/gtkmenu.h
+++ b/gtk/gtkmenu.h
@@ -173,9 +173,11 @@ void	   gtk_menu_detach		  (GtkMenu	       *menu);
  */
 GtkWidget* gtk_menu_get_attach_widget	  (GtkMenu	       *menu);
 
+#ifndef GTK_DISABLE_DEPRECATED
 void       gtk_menu_set_tearoff_state     (GtkMenu             *menu,
 					   gboolean             torn_off);
 gboolean   gtk_menu_get_tearoff_state     (GtkMenu             *menu);
+#endif /* GTK_DISABLE_DEPRECATED */
 
 /* This sets the window manager title for the window that
  * appears when a menu is torn off
diff --git a/gtk/gtktearoffmenuitem.c b/gtk/gtktearoffmenuitem.c
index f661520..8408ab8 100644
--- a/gtk/gtktearoffmenuitem.c
+++ b/gtk/gtktearoffmenuitem.c
@@ -24,6 +24,7 @@
  * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 
  */
 
+#undef GTK_DISABLE_DEPRECATED
 #include "config.h"
 
 #include "gtkmenu.h"
diff --git a/gtk/gtktearoffmenuitem.h b/gtk/gtktearoffmenuitem.h
index a30b0ec..22f10cb 100644
--- a/gtk/gtktearoffmenuitem.h
+++ b/gtk/gtktearoffmenuitem.h
@@ -24,9 +24,7 @@
  * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
  */
 
-#if defined(GTK_DISABLE_SINGLE_INCLUDES) && !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
-#error "Only <gtk/gtk.h> can be included directly."
-#endif
+#ifndef GTK_DISABLE_DEPRECATED
 
 #ifndef __GTK_TEAROFF_MENU_ITEM_H__
 #define __GTK_TEAROFF_MENU_ITEM_H__
@@ -73,3 +71,5 @@ GtkWidget* gtk_tearoff_menu_item_new	      (void);
 G_END_DECLS
 
 #endif /* __GTK_TEAROFF_MENU_ITEM_H__ */
+
+#endif /* GTK_DISABLE_DEPRECATED */
diff --git a/gtk/gtkuimanager.c b/gtk/gtkuimanager.c
index 771252d..4ac6653 100644
--- a/gtk/gtkuimanager.c
+++ b/gtk/gtkuimanager.c
@@ -208,6 +208,7 @@ gtk_ui_manager_class_init (GtkUIManagerClass *klass)
   klass->get_widget = gtk_ui_manager_real_get_widget;
   klass->get_action = gtk_ui_manager_real_get_action;
 
+#ifndef GTK_DISABLE_DEPRECATED
   /**
    * GtkUIManager:add-tearoffs:
    *
@@ -226,6 +227,7 @@ gtk_ui_manager_class_init (GtkUIManagerClass *klass)
 							 P_("Whether tearoff menu items should be added to menus"),
                                                          FALSE,
 							 GTK_PARAM_READWRITE));
+#endif /* GTK_DISABLE_DEPRECATED */
 
   g_object_class_install_property (gobject_class,
 				   PROP_UI,
@@ -609,6 +611,7 @@ gtk_ui_manager_new (void)
  * Return value: whether tearoff menu items are added
  *
  * Since: 2.4
+ * Deprecated: 2.20
  **/
 gboolean 
 gtk_ui_manager_get_add_tearoffs (GtkUIManager *self)
@@ -631,6 +634,7 @@ gtk_ui_manager_get_add_tearoffs (GtkUIManager *self)
  * menus never have tearoff menu items.
  *
  * Since: 2.4
+ * Deprecated: 2.20
  **/
 void 
 gtk_ui_manager_set_add_tearoffs (GtkUIManager *self,
diff --git a/gtk/gtkuimanager.h b/gtk/gtkuimanager.h
index e58c291..f0259e0 100644
--- a/gtk/gtkuimanager.h
+++ b/gtk/gtkuimanager.h
@@ -112,9 +112,11 @@ typedef enum {
 
 GType          gtk_ui_manager_get_type            (void) G_GNUC_CONST;
 GtkUIManager  *gtk_ui_manager_new                 (void);
+#ifndef GTK_DISABLE_DEPRECATED
 void           gtk_ui_manager_set_add_tearoffs    (GtkUIManager          *self,
 						   gboolean               add_tearoffs);
 gboolean       gtk_ui_manager_get_add_tearoffs    (GtkUIManager          *self);
+#endif /* GTK_DISABLE_DEPRECATED */
 void           gtk_ui_manager_insert_action_group (GtkUIManager          *self,
 						   GtkActionGroup        *action_group,
 						   gint                   pos);
