diff --git a/panelizer.module b/panelizer.module
index 9f9dd3e..35a0154 100644
--- a/panelizer.module
+++ b/panelizer.module
@@ -44,6 +44,53 @@ function panelizer_permission() {
 }
 
 /**
+ * Implements hook_og_permission().
+ */
+function panelizer_og_permission() {
+  $items = array();
+
+  // Delegate.
+  foreach (panelizer_get_plugins_with_hook('permission') as $handler) {
+    if ($handler->entity_type == 'node') {
+      $handler->hook_permission($items);
+    }
+  }
+
+  $final = array();
+  $final = array(
+    'administer panelizer og_group defaults' => array(
+      'title' => t('Group: Administer Panelizer default panels, allowed content and settings.'),
+      'description' => t('Users with this permission can fully administer panelizer for this entity bundle.'),
+    ),
+    'administer panelizer og_group overview' => array(
+      'title' => t('Group: Administer Panelizer overview.'),
+      'description' => t('Allow access to the panelizer overview page for the entity type/bundle. Note: This permission will be required for panelizer tabs to appear on an entity.'),
+    ),
+  );
+
+  foreach (panelizer_operations() as $path => $operation) {
+    $final["administer panelizer og_group $path"] = array(
+      'title' => t('Group: Administer Panelizer @operation', array(
+        '@operation' => $operation['link title'],
+      )),
+    );
+  }
+
+ 
+  foreach ($items as $key => $item) {
+    // Get node bundle
+    $words = explode(' ', $key);
+    $bundle = $words[3];
+    if (og_is_group_content_type('node', $bundle)) {
+      $final[$key] = $item;
+    }
+  }
+
+  return $final;
+}
+
+
+/**
  * Implements hook_theme().
  */
 function panelizer_theme() {
diff --git a/plugins/entity/PanelizerEntityDefault.class.php b/plugins/entity/PanelizerEntityDefault.class.php
index 20ff5e4..3dbf75c 100644
--- a/plugins/entity/PanelizerEntityDefault.class.php
+++ b/plugins/entity/PanelizerEntityDefault.class.php
@@ -1191,9 +1191,26 @@ abstract class PanelizerEntityDefault implements PanelizerEntityInterface {
    * Determine if the user has access to the panelizer operation for this type.
    */
   function panelizer_access($op, $bundle, $view_mode) {
+    $og_access = FALSE;
     if (is_object($bundle)) {
       $entity = $bundle;
       list($entity_id, $revision_id, $bundle) = entity_extract_ids($this->entity_type, $entity);
+     
+      if (module_exists('og')) { 
+        if (og_is_group($this->entity_type, $entity)) {
+          $og_access = og_user_access($this->entity_type, $entity_id, "administer panelizer og_group $op");
+        }
+        else {
+          $og_groups = og_get_entity_groups($this->entity_type, $entity);
+          foreach ($og_groups as $og_group_type => $og_gids) {
+            foreach ($og_gids as $og_gid) {
+              if (og_user_access($og_group_type, $og_gid, "administer panelizer $this->entity_type $bundle $op")) {
+                $og_access = TRUE;
+              }
+            }
+          }
+        }
+      }
 
       // If there is an $op, this must actually be panelized in order to pass.
       // If there is no op, then the settings page can provide us a "panelize it!"
@@ -1203,9 +1220,10 @@ abstract class PanelizerEntityDefault implements PanelizerEntityInterface {
       }
     }
 
-    return user_access('administer panelizer') || user_access("administer panelizer $this->entity_type $bundle $op");
+    return user_access('administer panelizer') || user_access("administer panelizer $this->entity_type $bundle $op") || $og_access;
   }
 
+
   /**
    * Switched page callback to give the overview page
    */
