Index: patterns.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/patterns/patterns.module,v
retrieving revision 1.1.2.2.2.76
diff -u -r1.1.2.2.2.76 patterns.module
--- patterns.module	29 Sep 2009 14:42:23 -0000	1.1.2.2.2.76
+++ patterns.module	30 Sep 2009 20:09:43 -0000
@@ -1789,7 +1789,7 @@
 
   // prevent infinite recursion
   if (in_array($pattern->pid, $pids)) return array();
-  $pids[] = $pattern->pid;
+  $pids[$pattern->pid] = $pattern->pid;
 
   $actions = !empty($pattern->pattern['actions']) ? $pattern->pattern['actions'] : array();
   $modules = !empty($pattern->pattern['modules']) ? $pattern->pattern['modules'] : array();
@@ -1831,8 +1831,12 @@
       }
     }
     $result['modules'] = array_merge(array_unique($result['modules']));
+    // Remove pid from recursion stack
+    unset($pids[$pattern->pid]);
     return $result;
   }
+  // Remove pid from recursion stack
+  unset($pids[$pattern->pid]);
   return array('actions' => $actions, 'modules' => $modules, 'info' => $patterns);
 }
 
