diff --git a/og_user_roles.module b/og_user_roles.module
index adb60e6..51bdfa4 100644
--- a/og_user_roles.module
+++ b/og_user_roles.module
@@ -356,7 +356,7 @@ function og_user_roles_grant_roles(&$account, $group_node = NULL, $reset = FALSE
     elseif ($node = og_get_group_context()) {
       $group_node = $group_node_save = $node;
     }
-    else {
+    elseif (variable_get('og_user_roles_calculate_group_node', TRUE)) {
       // Try to determine group context using customized menu system functions.
       $group_node = $group_node_save = og_user_roles_determine_context();
     }
diff --git a/og_user_roles.pages.inc b/og_user_roles.pages.inc
index 2d0f4ab..3aa8e2b 100644
--- a/og_user_roles.pages.inc
+++ b/og_user_roles.pages.inc
@@ -46,6 +46,13 @@ function og_user_roles_admin_settings() {
     );
   }
 
+  $form['og_user_roles_calculate_group_node'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Find the current group node based on context'),
+    '#description' => t('If using modules that always set the current group context, disable this setting for better performance..'),
+    '#default_value' => variable_get('og_user_roles_calculate_group_node', TRUE),
+  );
+
   $form['og_user_roles_defaults'] = array(
     '#type' => 'fieldset',
     '#title' => t('Default role assignments'),
