diff --git a/og_vocab.module b/og_vocab.module
index 58381ae..2943c69 100644
--- a/og_vocab.module
+++ b/og_vocab.module
@@ -11,17 +11,6 @@
 define('OG_VOCAB_FIELD', 'og_vocabulary');
 
 /**
- * Implements hook_help().
- */
-function og_vocab_help($path, $arg) {
-  // Get the menu item to determine the context.
-  $item = menu_get_item();
-  if ($item['path'] == 'node/%/og/vocab') {
-    return t('Add or edit vocabularies that pertain only to this group. Each vocabulary will be shown on the post authoring form. Use categories to organize content within your group.');
-  }
-}
-
-/**
  * Implements hook_menu().
  */
 function og_vocab_menu() {
@@ -706,13 +695,13 @@ function og_vocab_query_taxonomy_vocabulary_load_multiple_alter(QueryAlterableIn
     return;
   }
   $cache = TRUE;
-  $item = menu_get_item();
-  if (strpos($item['path'], 'group/') !== 0 || empty($item['map'][2])) {
+
+  if (!$context = og_vocab_is_group_admin_context()) {
     return;
   }
 
-  $group_type = $item['map'][1];
-  $gid = $item['map'][2];
+  $group_type = $context['group_type'];
+  $gid = $context['gid'];
 
   $query->innerJoin('og_vocab_relation', 'ogr', 'ogr.vid = base.vid');
   $query
@@ -727,13 +716,13 @@ function og_vocab_query_taxonomy_vocabulary_load_multiple_alter(QueryAlterableIn
  * Vocabularies overview.
  */
 function og_vocab_form_taxonomy_overview_vocabularies_alter(&$form, $form_state) {
-  $item = menu_get_item();
-  if (strpos($item['path'], 'group/') !== 0 || empty($item['map'][2])) {
+  if (!$context = og_vocab_is_group_admin_context()) {
     return;
   }
 
-  $group_type = $item['map'][1];
-  $gid = $item['map'][2];
+  $group_type = $context['group_type'];
+  $gid = $context['gid'];
+
   $path_prefix = "group/$group_type/$gid/admin";
 
   foreach (array_keys($form) as $key) {
@@ -753,11 +742,12 @@ function og_vocab_form_taxonomy_overview_vocabularies_alter(&$form, $form_state)
  * Preprocess table; Change the "Empty" link to redirect to correct page.
  */
 function og_vocab_preprocess_table(&$variables) {
-  $item = menu_get_item();
-  if (strpos($item['path'], 'group/') !== 0 || empty($item['map'][2])) {
+  if (!$context = og_vocab_is_group_admin_context()) {
     return;
   }
 
+  $item = menu_get_item();
+
   $variables['empty'] = t('No vocabularies available. <a href="@link">Add vocabulary</a>.', array('@link' => url($item['href'] . '/add')));
 }
 
@@ -771,19 +761,17 @@ function og_vocab_preprocess_table(&$variables) {
  * @see og_vocab_form_taxonomy_form_vocabulary_submit().
  */
 function og_vocab_form_taxonomy_form_vocabulary_alter(&$form, $form_state) {
-  // Get the menu item to determine the context.
-  $item = menu_get_item();
-  if (strpos($item['path'], 'group/') !== 0 || empty($item['map'][2])) {
+  if (!empty($form_state['triggering_element']['#parents'][0]) && $form_state['triggering_element']['#parents'][0] == 'delete') {
+    // This is delete confirmation page.
     return;
   }
 
-  if (!empty($form_state['triggering_element']['#parents'][0]) && $form_state['triggering_element']['#parents'][0] == 'delete') {
-    // This is delete confirmation page.
+  if (!$context = og_vocab_is_group_admin_context()) {
     return;
   }
 
-  $group_type = $item['map'][1];
-  $gid = $item['map'][2];
+  $group_type = $context['group_type'];
+  $gid = $context['gid'];
 
   $group = entity_load_single($group_type, $gid);
   list(,, $group_bundle) = entity_extract_ids($group_type, $group);
@@ -1070,3 +1058,22 @@ function og_vocab_entity_delete($entity, $entity_type) {
   }
 }
 
+/**
+ * Check if a given page is inside a group admin context.
+ *
+ * We determine the context by the menu item path, and if it doesn't exist
+ * and OG context module is enabled, we try to check if we have a group
+ * context avialable.
+ *
+ * @return
+ *   Array keyed with the group type and group ID, if context found.
+ */
+function og_vocab_is_group_admin_context() {
+  $item = menu_get_item();
+  if (strpos($item['path'], 'group/') === 0 && !empty($item['map'][2])) {
+    return array('group_type' => $item['map'][1], 'gid' => $item['map'][2]);
+  }
+  if (module_exists('og_context') && $context = og_context()) {
+    return $context;
+  }
+}
