diff --git a/src/polkit-helpers/polkit-gnome-action.c b/src/polkit-helpers/polkit-gnome-action.c
index d5bf053..97bbe94 100644
--- a/src/polkit-helpers/polkit-gnome-action.c
+++ b/src/polkit-helpers/polkit-gnome-action.c
@@ -1973,26 +1973,19 @@ polkit_gnome_action_activate (PolKitGnomeAction *action)
 static void
 _update_tooltips (PolKitGnomeAction *action, GParamSpec *arg1, GtkWidget *widget)
 {
-        GtkTooltips *tips;
-        GtkTooltipsData *ttd;
-        gchar *tip_str;
-
-        ttd = gtk_tooltips_data_get (widget);
-
-        if (ttd == NULL) {
-                tips = gtk_tooltips_new ();
-        } else {
-                tips = ttd->tooltips;
-        }
-
+	
+	gchar *tip_str;
+        
         tip_str = NULL;
         g_object_get (action, "tooltip", &tip_str, NULL);
 
         /* TODO: if there is no tooltip the tip_str is NULL.
          * Unfortunately it seems that the tooltip isn't
          * cleared.. mmm.. gtk+ bug?
+         * 
+         * Is this still the case with the new GtkTooltip API, which replaced GtkTooltips?
          */
-        gtk_tooltips_set_tip (tips, widget, tip_str, tip_str);
+	gtk_widget_set_tooltip_text (widget, tip_str);
         g_free (tip_str);
 }
 
@@ -2067,7 +2060,11 @@ polkit_gnome_action_create_button (PolKitGnomeAction *action)
 
         button = gtk_button_new ();
 
+        #if GTK_CHECK_VERSION(2, 15, 1)
+	gtk_activatable_set_related_action (button, GTK_ACTION (action));
+        #else
         gtk_action_connect_proxy (GTK_ACTION (action), button);
+        #endif
 
         _update_label (action, NULL, button);
         _update_tooltips (action, NULL, button);
