diff --git includes/rules.core.inc includes/rules.core.inc
index 962f692..db23045 100644
--- includes/rules.core.inc
+++ includes/rules.core.inc
@@ -683,7 +683,12 @@ abstract class RulesPlugin extends RulesExtendable {
       if (count($parts) > 1 && $wrapper instanceof EntityMetadataWrapper) {
         try {
           foreach (explode(':', $parts[1]) as $name) {
-            $wrapper = $wrapper->get($name);
+            if ($wrapper instanceof EntityListWrapper || $wrapper instanceof EntityStructureWrapper) {
+              $wrapper = $wrapper->get($name);
+            }
+            else {
+              return FALSE;
+            }
           }
         }
         // In case of an exception or we were unable to get a wrapper, return FALSE.
diff --git includes/rules.state.inc includes/rules.state.inc
index 48ad16b..6be3b1d 100644
--- includes/rules.state.inc
+++ includes/rules.state.inc
@@ -274,7 +274,12 @@ class RulesState {
     }
     try {
       foreach (explode(':', $parts[1]) as $name) {
-        $wrapper = $wrapper->get($name);
+        if ($wrapper instanceof EntityListWrapper || $wrapper instanceof EntityStructureWrapper) {
+          $wrapper = $wrapper->get($name);
+        }
+        else {
+          throw new RulesException('Unable to apply data selector %selector. The specified variable is not a list or a structure: %wrapper.', array('%selector' => $selector, '%wrapper' => $wrapper));
+        }
       }
     }
     catch (EntityMetadataWrapperException $e) {
