diff --git a/rules/rules.module b/rules/rules.module
index 927bfcb..842b74c 100644
--- a/rules/rules.module
+++ b/rules/rules.module
@@ -197,8 +197,11 @@ function _rules_get_rule_sets() {
   $sets = array();
   $rules = array_filter(rules_get_configured_items('rules'), '_rules_rule_is_active');
   foreach ($rules as $name => $rule) {
-    $sets += array($rule['#set'] => array());
-    $sets[$rule['#set']]['info'] = rules_get_rule_sets($rule['#set']);
+    // add a new set to the list
+    if (!isset($sets[$rule['#set']])) {
+      $sets += array($rule['#set'] => array());
+      $sets[$rule['#set']]['info'] = rules_get_rule_sets($rule['#set']);
+    }
     // Set the name for rules, so that it's avaialbe during evaluation
     $rule['#name'] = $name;
     $sets[$rule['#set']]['rules'][$name] = $rule;
