diff --git a/includes/rules.core.inc b/includes/rules.core.inc
index 2d90ff7..bf45b39 100644
--- a/includes/rules.core.inc
+++ b/includes/rules.core.inc
@@ -1167,7 +1167,7 @@ abstract class RulesPlugin extends RulesExtendable {
           }
           // Rebuild the event sets cached for evaluation.
           foreach ($events_to_rebuild as $event_name) {
-            RulesEventSet::rebuildEventCache('event' . $event_name);
+            RulesEventSet::rebuildEventCache('event_' . $event_name);
           }
           cache_clear_all($this->getCacheId(), 'cache_rules', TRUE);
         }
diff --git a/includes/rules.plugins.inc b/includes/rules.plugins.inc
index 3f5beec..85913b4 100644
--- a/includes/rules.plugins.inc
+++ b/includes/rules.plugins.inc
@@ -778,8 +778,8 @@ class RulesEventSet extends RulesRuleSet {
     foreach ($rules as $name => $rule) {
       foreach ($rule->events() as $event_name) {
         $event_base_name = rules_get_event_base_name($event_name);
-        // Skip not defined events.
-        if (empty($events[$event_base_name])) {
+        // Skip not defined or not handled events.
+        if (empty($events[$event_base_name]) || (!empty($cache_event_name) && $cache_event_name != $event_name)) {
           continue;
         }
         // Create an event set if not yet done.
