Index: module_grants.module
===================================================================
--- module_grants.module	(revision 1424)
+++ module_grants.module	(working copy)
@@ -249,8 +249,18 @@
   //drupal_set_message("'$op' access=$result by node_access table: '$node->title'", 'warning', FALSE);
     return $result;
   }
-
+  
   $or_modules = variable_get('module_grants_OR_modules', FALSE);
+  
+  //domain access rules always apply
+  if(isset($all_grants['domain'])) {
+    $module_grants = $all_grants['domain'];
+    unset($all_grants['domain']);
+    $sql = $base_sql . (empty($module_grants) ? "" : " OR ($module_grants)") .") AND grant_$op >=1";
+    $result = db_result(db_query($sql, $node->nid));
+    if($result == 0) return $result;
+  }
+  
   foreach ($all_grants as $module => $module_grants) {
     $sql = $base_sql . (empty($module_grants) ? "" : " OR ($module_grants)") .") AND grant_$op >=1";
     // Effectively AND module_grants together by breaking loop as soon as one fails
