diff --git a/app/gui/ige-mac-menu.c b/app/gui/ige-mac-menu.c
index 0dc1f08..30841c0 100644
--- a/app/gui/ige-mac-menu.c
+++ b/app/gui/ige-mac-menu.c
@@ -300,14 +300,17 @@ carbon_menu_item_update_accelerator (CarbonMenuItem *carbon_item,
 
   get_menu_label_text (widget, &label);
 
-  if (GTK_IS_ACCEL_LABEL (label) &&
-      GTK_ACCEL_LABEL (label)->accel_closure)
+  if (GTK_IS_ACCEL_LABEL (label))
+  {
+    GClosure *closure;
+
+    g_object_get(label, "accel-closure", &closure, NULL);
+
+    if (closure)
     {
       GtkAccelKey *key;
 
-      key = gtk_accel_group_find (GTK_ACCEL_LABEL (label)->accel_group,
-				  accel_find_func,
-				  GTK_ACCEL_LABEL (label)->accel_closure);
+      key = gtk_accel_group_from_accel_closure(closure);
 
       if (key            &&
 	  key->accel_key &&
@@ -349,6 +352,7 @@ carbon_menu_item_update_accelerator (CarbonMenuItem *carbon_item,
 	    }
 	}
     }
+}
 
   /*  otherwise, clear the menu shortcut  */
   SetMenuItemModifiers (carbon_item->menu, carbon_item->index,
@@ -371,9 +375,17 @@ carbon_menu_item_accel_changed (GtkAccelGroup   *accel_group,
 
   get_menu_label_text (widget, &label);
 
-  if (GTK_IS_ACCEL_LABEL (label) &&
-      GTK_ACCEL_LABEL (label)->accel_closure == accel_closure)
-    carbon_menu_item_update_accelerator (carbon_item, widget);
+  if (GTK_IS_ACCEL_LABEL (label))
+  {
+    GClosure *closure;
+
+    g_object_get(label, "accel-closure", &closure, NULL);
+
+    if (closure == accel_closure)
+        carbon_menu_item_update_accelerator (carbon_item, widget);
+
+    g_object_unref(closure);
+  }
 }
 
 static void
@@ -398,7 +410,7 @@ carbon_menu_item_update_accel_closure (CarbonMenuItem *carbon_item,
     }
 
   if (GTK_IS_ACCEL_LABEL (label))
-    carbon_item->accel_closure = GTK_ACCEL_LABEL (label)->accel_closure;
+    g_object_get(label, "accel-closure", &(carbon_item->accel_closure), NULL);
 
   if (carbon_item->accel_closure)
     {
@@ -674,10 +686,10 @@ sync_menu_shell (GtkMenuShell *menu_shell,
 	  if (GTK_IS_SEPARATOR_MENU_ITEM (menu_item))
 	    attributes |= kMenuItemAttrSeparator;
 
-	  if (!GTK_WIDGET_IS_SENSITIVE (menu_item))
+	  if (!gtk_widget_is_sensitive(menu_item))
 	    attributes |= kMenuItemAttrDisabled;
 
-	  if (!GTK_WIDGET_VISIBLE (menu_item))
+	  if (!gtk_widget_get_visible(menu_item))
 	    attributes |= kMenuItemAttrHidden;
 
 	  InsertMenuItemTextWithCFString (carbon_menu, cfstr,
@@ -730,10 +742,17 @@ parent_set_emission_hook (GSignalInvocationHint *ihint,
 	{
 	  menu_shell = previous_parent;
         }
-      else if (GTK_IS_MENU_SHELL (instance->parent))
-	{
-	  menu_shell = instance->parent;
-	}
+      else
+      {
+        GtkWidget *parent;
+
+        parent = gtk_widget_get_parent(instance);
+
+        if (GTK_IS_MENU_SHELL (parent))
+        {
+          menu_shell = parent;
+        }
+      }
 
       if (menu_shell)
         {
