diff --git a/og_menu.module b/og_menu.module
index bb7bcda..301cef6 100644
--- a/og_menu.module
+++ b/og_menu.module
@@ -69,7 +69,7 @@ function og_menu_menu() {
   $items['node/%node/og_menu/%menu/add'] = array(
     'title' => 'Add item',
     'page callback' => 'drupal_get_form',
-    'page arguments' => array('og_menu_edit_item_form', 'add', 5, 3, 1),
+    'page arguments' => array('og_menu_edit_item_form', 'add', 1, 3, 1),
     'access callback' => 'og_menu_access',
     'access arguments' => array(1, 3),
     'type' => MENU_LOCAL_TASK,
@@ -99,7 +99,7 @@ function og_menu_menu() {
   $items['node/%node/og_menu/%menu/item/%menu_link/edit'] = array(
     'title' => 'Edit menu item',
     'page callback' => 'drupal_get_form',
-    'page arguments' => array('og_menu_edit_item_form', 'edit', 5, 3, 1),
+    'page arguments' => array('og_menu_edit_item_form', 'edit', 1, 3, 1),
     'access callback' => 'og_menu_access',
     'access arguments' => array(1, 3),
     'type' => MENU_LOCAL_TASK,
@@ -132,7 +132,8 @@ function og_menu_theme_registry_alter(&$theme_registry) {
 function og_menu_theme($existing, $type, $theme, $path) {
   return array(
     'og_menu_node_form' => array(
-      'arguments' => array('form' => NULL),
+	  'render element' => 'form',
+      //'arguments' => array('form' => NULL),
     ),
   );
 }
@@ -212,7 +213,7 @@ function og_menu_block_view($delta = '') {
  */
 function og_menu_get_context() {
   $context = og_context();
-  return (isset($context->etid) ? $context->etid : 0);
+  return (isset($context->gid) ? $context->gid : 0);
 }
 
 /**
@@ -223,8 +224,8 @@ function og_menu_form_alter(&$form, $form_state, $form_id) {
   if (isset($form['#node']) && $form['#node']->type .'_node_form' == $form_id && og_is_group_content_type('node', $form['#node']->type)) {
     // Only alter the form if user does not have the administer menu permission
     if (!user_access('administer menu') && user_access('administer og menu')) {
+    
       $groups = array();
-
       // If the user has access to more than one group, we take the options
       // out of the OG audience form element.
       if (!empty($form['og_nodeapi']['visible']['og_groups']['#options'])) {
@@ -248,14 +249,16 @@ function og_menu_form_alter(&$form, $form_state, $form_id) {
 
       $list = array();
       $settings = array();
-      $item = $form['menu']['#item'];
+	  
+      //$item = $form['menu']['#item'];
+	  $item = $form['type']['#value'];
       $menus = og_menu_get_menus($groups);
       
       if (!empty($menus)) {
         foreach ($menus as $menu) {
-          $list[$menu->mname] = $menu->title;
+          $list[$menu->mname] = $menu->mtitle;
         }
-        $options = menu_parent_options($list, $item);
+		$options = menu_parent_options($list, $item);
         $form['menu']['#access'] = user_access('administer og menu');
         $form['menu']['#theme'] = 'og_menu_node_form';
         $form['menu']['parent']['#options'] = $options;
@@ -308,12 +311,13 @@ function og_menu_form_alter(&$form, $form_state, $form_id) {
         }
         $value = db_query("SELECT gid FROM {og_menu} WHERE menu_name = :mname", array(':mname' => $form['menu_name']['#default_value']));
         $value = $value->fetchObject();
+		
         // Add OG checkboxes to the form
         $form['og_menu_gid'] = array(
           '#title' => t('Enable this menu for the following group'),
           '#type' => 'select',
           '#options' => $options,
-          '#default_value' => $value->gid,
+          '#default_value' => $value != NULL ? $value->gid : '',
           '#weight' => 1,
         );
         if (!user_access('administer menu')) {
@@ -345,9 +349,10 @@ 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) {
-      db_query("INSERT INTO {menu_custom} (menu_name, title, description) VALUES (:mname, :mtitle, :mdesc)", array(':mname' => 'menu-og-'. $node->nid, ':mtitle' => $node->title, ':mdesc' => t('Menu for') .' '. check_plain($node->title)));
-      og_menu_update_menu('menu-og-'. $node->nid, $node->nid);
+      db_query("INSERT INTO {menu_custom} (menu_name, title, description) VALUES (:mname, :mtitle, :mdesc)", array(':mname' => 'menu-og-'. $og->gid, ':mtitle' => $node->title, ':mdesc' => t('OG Menu for') .' '. check_plain($node->title)));
+      og_menu_update_menu('menu-og-'. $og->gid, $og->gid);
     }
   }
 }
@@ -357,16 +362,17 @@ 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($node->nid));
       if (empty($menu)) {
-        db_query("INSERT INTO {menu_custom} (menu_name, title, description) VALUES (:mname, :mtitle, :mdesc)", array(':mname' => 'menu-og-'. $node->nid, ':mtitle' => $node->title, ':mdesc' => t('Menu for') .' '. check_plain($node->title)));
-        og_menu_update_menu('menu-og-'. $node->nid, $node->nid);
+        db_query("INSERT INTO {menu_custom} (menu_name, title, description) VALUES (:mname, :mtitle, :mdesc)", array(':mname' => 'menu-og-'. $og->gid, ':mtitle' => $node->title, ':mdesc' => t('OG Menu for') .' '. check_plain($node->title)));
+        og_menu_update_menu('menu-og-'. $og->gid, $og->gid);
       }
     }
     else {
-      db_query("DELETE FROM {menu_custom} WHERE menu_name = :mname", array(':mname' => 'menu-og-'. $node->nid));
-      og_menu_update_menu('menu-og-'. $node->nid);
+      db_query("DELETE FROM {menu_custom} WHERE menu_name = :mname", array(':mname' => 'menu-og-'. $og->gid));
+      og_menu_update_menu('menu-og-'. $og->gid);
     }
   }
 }
@@ -376,8 +382,9 @@ function  og_menu_node_update($node) {
  */
 function  og_menu_node_delete($node) {
   if (og_is_group_type('node', $node->type)) {
-    db_query("DELETE FROM {menu_custom} WHERE menu_name = :mname", array(':mname' => 'menu-og-'. $node->nid));
-        og_menu_update_menu('menu-og-'. $node->nid);
+  	$og = og_get_group('node', $node->nid, FALSE, array(OG_STATE_ACTIVE, OG_STATE_PENDING));
+    db_query("DELETE FROM {menu_custom} WHERE menu_name = :mname", array(':mname' => 'menu-og-'. $og->gid));
+        og_menu_update_menu('menu-og-'. $og->gid);
   }
 }
 
@@ -441,7 +448,7 @@ function og_menu_get_menus($gids = NULL, $user = NULL) {
   if (!$gids) {
     $nodegroups = og_load_multiple(og_get_entity_groups('user', $user));
     foreach($nodegroups as $ng)
-      $gids[] = $ng->etid;
+      $gids[] = $ng->gid;
   }
   $menus = array();
   if ($gids) {
@@ -455,7 +462,7 @@ function og_menu_get_menus($gids = NULL, $user = NULL) {
                          LEFT JOIN {menu_custom} m ON om.menu_name = m.menu_name
                         WHERE om.gid IN (:gids)
                         ORDER BY mtitle", array(':gids' => $gids));
-
+                        
     foreach ($result as $menu) {
       $menus[] = $menu;
     }
@@ -480,7 +487,9 @@ function og_menu_access($node, $menu = NULL) {
     return TRUE;
   }
   else if (user_access('administer og menu')) {
-    if ($node && og_is_member($node)) {
+//    if ($node && og_is_member($node)) {
+	//if ($node && og_is_member(og_context()->gid)) {
+	if ($node && node_access('update', $node)) {
       return TRUE;
     }
     else if ($menu) {
@@ -515,12 +524,12 @@ function og_menu_redirect($form, &$form_state) {
  */
 function og_menu_edit_menu_form_submit($form, &$form_state) {
   $menu_name = $form_state['values']['menu_name'];
-  $gid = $form_state['values']['og_menu_gid'];
+  $og = og_context();
   // Add 'menu-' if this is a new menu
   if (strpos($menu_name, 'menu-') === FALSE) {
     $menu_name = 'menu-'. $menu_name;
   }
-  og_menu_update_menu($menu_name, $gid);
+  og_menu_update_menu($menu_name, $og->gid);
 }
 
 /**
@@ -538,3 +547,4 @@ function og_menu_delete_menu_confirm_submit_redirect($form, &$form_state) {
   $node = menu_get_object('node', 1);
   $form_state['redirect'] = 'node/'. $node->nid .'/og_menu';
 }
+
diff --git a/og_menu.pages.inc b/og_menu.pages.inc
index 3371cd8..91f51fa 100644
--- a/og_menu.pages.inc
+++ b/og_menu.pages.inc
@@ -9,16 +9,15 @@
  * 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) {
+	$og = og_get_group('node', $node->nid, FALSE, array(OG_STATE_ACTIVE, OG_STATE_PENDING));
   $result = db_query("
     SELECT om.gid, om.menu_name as omname, m.menu_name as mname, m.title as mtitle FROM {og_menu} om
     LEFT JOIN {menu_custom} m
     ON om.menu_name = m.menu_name
     WHERE om.gid = :gid
-    ORDER BY mtitle", array(':gid' => $node->nid));
-
+    ORDER BY mtitle", array(':gid' => $og->gid));
   $content = array();
   foreach ($result as $menuobj) {
-
     $menu['href'] = 'node/'. $node->nid .'/og_menu/'. $menuobj->omname;
     $menu['localized_options'] = array();
     $menu['title'] = $menuobj->mtitle;
@@ -82,6 +81,7 @@ function og_menu_overview_form($form, &$form_state, $menu, $node) {
   $form = drupal_retrieve_form('menu_overview_form', $form_state, $menu);
 
   $form['#theme'] = 'menu_overview_form';
+  $form['#empty_text'] = 'There are not menu links yet. Click \'Add item\' to add some.';
 
   foreach (element_children($form) as $mlid) {
     if (strstr($mlid, 'mlid:')) {
@@ -105,10 +105,15 @@ function og_menu_overview_form($form, &$form_state, $menu, $node) {
      // $form['delete']['#submit'][] = 'og_menu_item_delete_submit'; // Missing submit handler?
     }
   }
-  $form['submit']['#submit'] = array('menu_overview_form_submit');
+  //$form['submit']['#submit'] = array('menu_overview_form_submit');
   return $form;
 }
 
+function og_menu_overview_form_submit($form, &$form_state)
+{
+  menu_overview_form_submit($form, $form_state);
+}
+
 /**
  * Form callback for node/%node/og_menu/%menu/delete
  */
@@ -131,11 +136,11 @@ 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, $type, $item, $menu);
   $list = array();
-  $menus = og_menu_get_menus(array($node->nid));
+  $menus = og_menu_get_menus(array(og_get_group('node', $node->nid)->gid));
   foreach ($menus as $menu) {
     $list[$menu->mname] = $menu->mtitle;
   }
-  $form['menu']['parent']['#options'] = menu_parent_options($list, $item);
+  $form['parent']['#options'] = menu_parent_options($list, array('mlid' => 0));
   $form['#submit'][] = 'menu_edit_item_submit';
   $form['#submit'][] = 'og_menu_redirect';
   $form['#validate'][] = 'menu_edit_item_validate';
@@ -157,3 +162,4 @@ function og_menu_delete_item_form($form, &$form_state, $item) {
   return $form;
 }
 
+
