diff --git a/og_menu.module b/og_menu.module
index 8aedf40..5f7b75a 100644
--- a/og_menu.module
+++ b/og_menu.module
@@ -207,7 +207,8 @@ function og_menu_block_view($delta = '') {
   $block = array();
   if ($delta == 'og_single_menu_block') {
     $context = og_context();
-    $group = isset($context->gid) ? $context->gid : 0;
+
+    $group = isset($context['gid']) ? $context['gid'] : 0;
     $menus = og_menu_get_menus(array($group));
     $menu = array_shift($menus);
 
@@ -227,9 +228,10 @@ function og_menu_block_view($delta = '') {
     $gids = array();
     if ($node) {
       if (og_is_group_content_type('node', $node->type)) {
-        $nodegroups = og_load_multiple(og_get_entity_groups('node', $node));
-        foreach ($nodegroups as $ng)
-          $gids[] = $ng->gid;
+        $nodegroups = og_get_entity_groups('node', $node);
+        if (!empty($nodegroups['node'])) {
+          $gids = $nodegroups['node'];
+        }
       }
       elseif (og_is_group_type('node', $node->type)) {
         $group = og_get_group('node', $node->nid);
@@ -260,7 +262,7 @@ function og_menu_block_view($delta = '') {
  */
 function og_menu_get_context() {
   $context = og_context();
-  return (isset($context->gid) ? $context->gid : 0);
+  return (isset($context['gid']) ? $context['gid'] : 0);
 }
 
 /**
@@ -445,8 +447,8 @@ function og_menu_form_menu_delete_menu_confirm_alter(&$form, &$form_state) {
  */
 function og_menu_node_prepare($node) {
   // $node is a group type.
-  if (og_is_group_type('node', $node->type)) {
-    $node->og_menu = og_menu_get_menus();
+  if (og_is_group_type('node', $node->type) && !empty($node->nid)) {
+    $node->og_menu = og_menu_get_menus(array($node->nid));
   }
   // $node is not a new node and is a group content type, menu link is not set.
   // @todo This used to exclude users with user_access('administer menu'), test the consequences of this change.
@@ -482,14 +484,13 @@ function og_menu_node_prepare($node) {
  */
 function og_menu_node_insert($node) {
   if (og_is_group_type('node', $node->type)) {
-    $og = og_get_group('node', $node->nid, FALSE, array(OG_STATE_ACTIVE, OG_STATE_PENDING));
     if ($node->og_menu) {
       menu_save(array(
-        'menu_name' => 'menu-og-' . $og->gid,
+        'menu_name' => 'menu-og-' . $node->nid,
         'title' => $node->title,
         'description' => t('OG Menu for') . ' ' . check_plain($node->title),
       ));
-      og_menu_update_menu('menu-og-' . $og->gid, $og->gid);
+      og_menu_update_menu('menu-og-' . $node->nid, $node->nid);
     }
   }
 }
@@ -499,21 +500,20 @@ function og_menu_node_insert($node) {
  */
 function og_menu_node_update($node) {
   if (og_is_group_type('node', $node->type)) {
-    $og = og_get_group('node', $node->nid, FALSE, array(OG_STATE_ACTIVE, OG_STATE_PENDING));
     if ($node->og_menu) {
-      $menu = og_menu_get_menus(array($og->gid));
+      $menu = og_menu_get_menus(array($node->nid));
       if (empty($menu)) {
         menu_save(array(
-          'menu_name' => 'menu-og-' . $og->gid,
+          'menu_name' => 'menu-og-' . $node->nid,
           'title' => $node->title,
           'description' => t('OG Menu for') . ' ' . check_plain($node->title),
         ));
-        og_menu_update_menu('menu-og-' . $og->gid, $og->gid);
+        og_menu_update_menu('menu-og-' . $node->nid, $node->nid);
       }
     }
     else {
       // We can't assume that the menu name is 'menu-og-[gid]' - we need to look up menus associated with this group
-      $result = db_query('SELECT menu_name FROM {og_menu} WHERE gid = :gid', array(':gid' => $og->gid))->fetchCol();
+      $result = db_query('SELECT menu_name FROM {og_menu} WHERE gid = :gid', array(':gid' => $node->nid))->fetchCol();
       foreach ($result as $menu_name) {
         menu_delete(array(
           'menu_name' => $menu_name,
@@ -614,9 +614,10 @@ function og_menu_get_menus($gids = NULL, $user = NULL) {
     global $user;
   }
   if (!$gids) {
-    $nodegroups = og_load_multiple(og_get_entity_groups('user', $user));
-    foreach ($nodegroups as $ng)
-      $gids[] = $ng->gid;
+    $nodegroups = og_get_entity_groups('user');
+    if (!empty($nodegroups['node'])) {
+      $gids = $nodegroups['node'];
+    }
   }
   $menus = array();
   if ($gids) {
@@ -634,7 +635,6 @@ function og_menu_get_menus($gids = NULL, $user = NULL) {
       $menus[] = $menu;
     }
   }
-
   return $menus;
 }
 
diff --git a/og_menu.pages.inc b/og_menu.pages.inc
index 41bc024..d736519 100644
--- a/og_menu.pages.inc
+++ b/og_menu.pages.inc
@@ -9,9 +9,6 @@
  * Menu callback which shows an overview page of all the custom menus in user's groups and their descriptions.
  */
 function og_menu_overview_page($node) {
-  $gid = og_get_group_ids('node', array($node->nid), FALSE, array(OG_STATE_ACTIVE, OG_STATE_PENDING));
-  $gid = $gid[$node->nid];
-
   // Set the title of the page.
   drupal_set_title(t('List menus for @title', array('@title' => $node->title)), PASS_THROUGH);
 
@@ -20,7 +17,7 @@ function og_menu_overview_page($node) {
     LEFT JOIN {menu_custom} m
     ON om.menu_name = m.menu_name
     WHERE om.gid = :gid
-    ORDER BY title", array(':gid' => $gid));
+    ORDER BY title", array(':gid' => $node->nid));
   $header = array(t('Title'), array('data' => t('Operations'), 'colspan' => '3'));
   $rows = array();
   foreach ($result as $menu) {
@@ -45,7 +42,6 @@ function og_menu_overview_page($node) {
 function og_menu_edit_menu_form($form, &$form_state, $type, $menu = array()) {
   module_load_include('inc', 'menu', 'menu.admin');
   $node = menu_get_object('node', 1);
-  $og = og_get_group('node', $node->nid, FALSE, array(OG_STATE_ACTIVE, OG_STATE_PENDING));
 
   // Set the title of the page.
   switch ($type) {
@@ -60,7 +56,7 @@ function og_menu_edit_menu_form($form, &$form_state, $type, $menu = array()) {
   $form = drupal_retrieve_form('menu_edit_menu', $form_state, $type, $menu);
   $form['og_menu_gid'] = array(
     '#type' => 'value',
-    '#value' => $og->gid,
+    '#value' => $node->nid,
   );
   // Add submit handlers.
   $form['#submit'][] = 'menu_edit_menu_submit';
@@ -162,7 +158,7 @@ function og_menu_edit_item_form($form, &$form_state, $type, $item, $menu, $node)
   module_load_include('inc', 'menu', 'menu.admin');
   $form = drupal_retrieve_form('menu_edit_item', $form_state, $form, $type, $item, $menu);
   $list = array();
-  $menus = og_menu_get_menus(array(og_get_group('node', $node->nid)->gid));
+  $menus = og_menu_get_menus(array($node->nid));
   foreach ($menus as $option) {
     $list[$option->mname] = $option->mtitle;
   }
