diff --git a/includes/entity.wrapper.inc b/includes/entity.wrapper.inc
index 6b85c5b317069e0c20d1219568fcc6385888ccff..984c0073d1930161f883c829c764b365e7a4b60c 100644
--- a/includes/entity.wrapper.inc
+++ b/includes/entity.wrapper.inc
@@ -965,9 +965,10 @@ class EntityListWrapper extends EntityMetadataWrapper implements IteratorAggrega
     // Generic entity-wrappers need to be handled separately though.
     if ($this->get(0) instanceof EntityDrupalWrapper && $this->itemType() != 'entity' && empty($options['identifier']) && $this->dataAvailable()) {
       $list = parent::value();
-      $entities = $list ? entity_load($this->get(0)->type, $list) : array();
+      $existing_list = array_filter($list, array($this, 'filter_objects'));
+      $entities = $existing_list ? entity_load($this->get(0)->type, $existing_list) : array();
       // Make sure to keep the array keys as present in the list.
-      foreach ($list as $key => $id) {
+      foreach ($existing_list as $key => $id) {
         // In case the entity cannot be loaded, we return NULL just as for empty
         // properties.
         $list[$key] = isset($entities[$id]) ? $entities[$id] : NULL;
@@ -976,6 +977,13 @@ class EntityListWrapper extends EntityMetadataWrapper implements IteratorAggrega
     }
     return parent::value();
   }
+  
+  /**
+   * This will filter out all objects only leave the keys.
+   */
+  private function filter_objects($value) {
+    return !($value instanceof Entity);
+  }
 
   public function set($values) {
     // Support setting lists of fully loaded entities.
