diff --git rules/tests/rules.test rules/tests/rules.test
index b1548e1..9f1b992 100644
--- rules/tests/rules.test
+++ rules/tests/rules.test
@@ -1096,6 +1096,54 @@ class RulesIntegrationTestCase extends DrupalWebTestCase {
     $rule->execute($node);
     RulesLog::logger()->checkLog();
     $this->assertEqual(array_values($node->field_tags[LANGUAGE_NONE]), array(0 => array('tid' => $term2->tid)), 'Term removed and added from a node.');
+
+    // Test taxonomy term references: create a taxonomy reference field.
+    $term_wrapped_field_name = drupal_strtolower($this->randomName() . '_field_name');
+    $term_wrapped_field = array('field_name' => $term_wrapped_field_name, 'type' => 'text', 'cardinality' => 4);
+    $term_wrapped_field = field_create_field($term_wrapped_field);
+    $term_wrapped_field_id = $term_wrapped_field['id'];
+    $term_wrapped_instance = array(
+      'field_name' => $term_wrapped_field_name,
+      'entity_type' => 'taxonomy_vocabulary',
+      'bundle' => 'tags', // Machine name of vocabulary.
+      'label' => $this->randomName() . '_label',
+      'description' => $this->randomName() . '_description',
+      'weight' => mt_rand(0, 127),
+      'settings' => array(
+        'text_processing' => FALSE,
+      ),
+      'widget' => array(
+        'type' => 'text_textfield',
+        'label' => 'Test Field',
+        'settings' => array(
+          'size' => 64,
+        )
+      )
+    );
+    field_create_instance($term_wrapped_instance);
+
+    $source_term = entity_metadata_entity_create('taxonomy_term', array(
+      'name' => $this->randomName(),
+      'vid' => 1,
+    ))->save();
+
+    $term_wrapped = entity_metadata_entity_create('taxonomy_term', array(
+      'name' => $this->randomName(),
+      'vid' => 1,
+    ))->save();
+
+    // Test asserting the term reference field and using it afterwards.
+    $rule = rule(array('taxonomy_term' => array('type' => 'taxonomy_term')));
+    $rule->condition('entity_has_field', array('entity:select' => 'taxonomy_term', 'field' => $term_wrapped_field_name));
+    $rule->condition('entity_is_new', array('entity:select' => 'taxonomy_term'));
+    // Add $term_wrapped to $source_term using the term reference field $term_wrapped_field_name.
+    $term_wrapped_field_name_rules_ui = str_replace('_', '-', $term_wrapped_field_name);
+    $rule->action('list_add', array('list:select' => 'taxonomy_term:' . $term_wrapped_field_name_rules_ui, 'item' => $term_wrapped));
+    $rule->execute($source_term);
+
+    $tid = $term_wrapped->getIdentifier();
+    RulesLog::logger()->checkLog();
+    $this->assertEqual(array_values($source_term->{$term_wrapped_field_name[LANGUAGE_NONE]}), array(0 => array('tid' => $tid)), 'Entity has field conditions evaluted.');
   }
 
   /**
