diff --git a/og_menu.module b/og_menu.module
index e003930..55b256c 100644
--- a/og_menu.module
+++ b/og_menu.module
@@ -210,6 +210,17 @@ function og_menu_menu() {
 }
 
 /**
+ * Implements hook_ctools_plugin_dierctory().
+ *
+ * To let the system know where our content_type plugins are.
+ */
+function og_menu_ctools_plugin_directory($module, $plugin) {
+  if ($module == 'ctools' && !empty($plugin)) {
+    return "plugins/$plugin";
+  }
+}
+
+/**
  * Implements hook_theme_registry_alter().
  */
 function og_menu_theme_registry_alter(&$theme_registry) {
diff --git a/plugins/content_types/og_menu_pane_content_type.inc b/plugins/content_types/og_menu_pane_content_type.inc
new file mode 100644
index 0000000..440db09
--- /dev/null
+++ b/plugins/content_types/og_menu_pane_content_type.inc
@@ -0,0 +1,164 @@
+<?php
+/**
+ * @file
+ * Contains plugin for og_menu
+ */
+
+/**
+ * Plugins are described by creating a $plugin array which will be used
+ * by the system that includes this file.
+ */
+$plugin = array(
+  'title' => t('OG Menu pane'),
+  'description' => t('This pane renders a OG Menu'),
+  // 'single' => TRUE means has no subtypes.
+  'single' => TRUE,
+  // Constructor.
+  'content_types' => array('og_menu_pane_content_type'),
+  // Name of a function which will render the pane.
+  'render callback' => 'og_menu_pane_content_type_render',
+  'edit form' => 'og_menu_pane_content_type_edit_form',
+  // Add our content type to Organic Groups category.
+  'category' => t('Organic groups'),
+);
+
+/**
+ * Output function for the og_menu pane content type.
+ */
+function og_menu_pane_content_type_render($subtype, $conf, $args, $context) {
+
+  // Grab the context from Organic Groups.
+  $context = og_context();
+  if (empty($context)) {
+    return null;
+  }
+
+  // Grab our menu.
+  $menus = og_menu_get_group_menus(array(
+    $context['group_type'] => array($context['gid']),
+  ));
+  $conf['og_menu_index'] = !empty($conf['og_menu_index']) ? $conf['og_menu_index'] : 1;
+  $menus = array_reverse($menus);
+  $menu = $menus[$conf['og_menu_index'] - 1];
+
+  if ($menu) {
+    $pane = new stdClass();
+    $pane->title = check_plain($menu['title']);
+    // Link the pane title to the group if this has been set in configuration.
+    if (isset($conf['og_menu_pane_block_links']) && $conf['og_menu_pane_block_links']) {
+      $pane->title_link = 'node/' . $context['gid'];
+    }
+
+    // If menu_block is enabled, extend the display.
+    if (module_exists('menu_block')) {
+      // Build up an array for menu in levels.
+      $conf['menu_name'] = $menu['menu_name'];
+      $conf['parent_mlid'] = $menu['menu_name'] . ':0';
+      $conf['delta'] = 1;
+      $conf['sort'] = FALSE;
+      $conf['title_link'] = FALSE;
+      $conf['follow'] = FALSE;
+      $conf['expanded'] = isset($conf['expanded']) ? $conf['expanded'] : FALSE;
+      $conf['level'] = isset($conf['level']) ? $conf['level'] : 1;
+      $conf['depth'] = isset($conf['depth']) ? $conf['depth'] : 1;
+      $rendered_menu = menu_tree_build($conf);
+      $pane->content = $rendered_menu['content'];
+    }
+    // Render as a regular menu tree.
+    else {
+      $pane->content = menu_tree($menu['menu_name']);
+    }
+    return $pane;
+  }
+  // If no menu was found return.
+  else {
+    return FALSE;
+  }
+}
+
+/**
+ * Edit_form callback for the content type.
+ */
+function og_menu_pane_content_type_edit_form($form, &$form_state) {
+  $conf = $form_state['conf'];
+
+  $form['og_menu_pane_block_links'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Link the title to group node'),
+    '#default_value' => !empty($conf['og_menu_pane_block_links']) ? $conf['og_menu_pane_block_links'] : '',
+    '#prefix' => '<div class="clear-block no-float">',
+    '#suffix' => '</div>',
+  );
+  $form['og_menu_index'] = array(
+    '#type' => 'select',
+    '#title' => t('Menu index'),
+    '#default_value' => $conf['og_menu_index'],
+    '#options' => array(
+      '1'  => t('First Menu'),
+      '2'  => t('Second Menu'),
+      '3'  => t('Third Menu'),
+    ),
+    '#description' => t('Select the OG menu to display.'),
+  );
+
+  $form['level'] = array(
+    '#type' => 'select',
+    '#title' => t('Starting level'),
+    '#default_value' => $conf['level'],
+    '#options' => array(
+      '1'  => t('1st level (primary)'),
+      '2'  => t('2nd level (secondary)'),
+      '3'  => t('3rd level (tertiary)'),
+      '4'  => t('4th level'),
+      '5'  => t('5th level'),
+      '6'  => t('6th level'),
+      '7'  => t('7th level'),
+      '8'  => t('8th level'),
+      '9'  => t('9th level'),
+    ),
+    '#description' => t('Blocks that start with the 1st level will always be visible. Blocks that start with the 2nd level or deeper will only be visible when the trail to the active menu item is in the block’s tree.'),
+  );
+  $form['depth'] = array(
+    '#type' => 'select',
+    '#title' => t('Maximum depth'),
+    '#default_value' => $conf['depth'],
+    '#options' => array(
+      '1'  => '1',
+      '2'  => '2',
+      '3'  => '3',
+      '4'  => '4',
+      '5'  => '5',
+      '6'  => '6',
+      '7'  => '7',
+      '8'  => '8',
+      '9'  => '9',
+      '0'  => t('Unlimited'),
+    ),
+    '#description' => t('From the starting level, specify the maximum depth of the menu tree.'),
+  );
+  $form['expanded'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('<strong>Expand all children</strong> of this tree.'),
+    '#default_value' => isset($conf['expanded']) ? $conf['expanded'] : 0,
+  );
+  if (!module_exists('menu_block')) {
+    $form['level']['#disabled'] = TRUE;
+    $form['level']['#description'] = t('<strong>Requires module Menu Block</strong><br />') . $form['level']['#description'];
+    $form['depth']['#disabled'] = TRUE;
+    $form['depth']['#description'] = t('<strong>Requires module Menu Block</strong><br />') . $form['depth']['#description'];
+    $form['expanded']['#disabled'] = TRUE;
+    $form['expanded']['#description'] = t('<strong>Requires module Menu Block</strong><br />') . $form['expanded']['#description'];
+  }
+  return $form;
+}
+
+/**
+ * Submit callback for content type editing form.
+ */
+function og_menu_pane_content_type_edit_form_submit(&$form, &$form_state) {
+  foreach (element_children($form) as $key) {
+    if (!empty($form_state['values'][$key])) {
+      $form_state['conf'][$key] = $form_state['values'][$key];
+    }
+  }
+}
