diff --git a/includes/common.inc b/includes/common.inc
index ceac115..927a839 100644
--- a/includes/common.inc
+++ b/includes/common.inc
@@ -7921,6 +7921,9 @@ function entity_create_stub_entity($entity_type, $ids) {
  * @see EntityFieldQuery
  */
 function entity_load($entity_type, $ids = FALSE, $conditions = array(), $reset = FALSE) {
+  if ($ids != FALSE && !is_array($ids)) {
+    throw new \InvalidArgumentException("The second argument passed to " . __FUNCTION__ . " must be FALSE or an array.");
+  }
   if ($reset) {
     entity_get_controller($entity_type)->resetCache();
   }
diff --git a/modules/simpletest/tests/entity_crud.test b/modules/simpletest/tests/entity_crud.test
index be15977..59388aa 100644
--- a/modules/simpletest/tests/entity_crud.test
+++ b/modules/simpletest/tests/entity_crud.test
@@ -45,5 +45,13 @@ class EntityLoadTestCase extends DrupalWebTestCase {
     $this->assertEqual(array_keys($nodes_loaded), array($node_2->nid, $node_3->nid));
     $this->assertIdentical($nodes_loaded[$node_2->nid], $all_nodes[$node_2->nid], 'Loaded node 2 is identical to cached node.');
     $this->assertIdentical($nodes_loaded[$node_3->nid], $all_nodes[$node_3->nid], 'Loaded node 3 is identical to cached node.');
+
+    try {
+      entity_load('node', 1);
+    }
+    catch (InvalidArgumentException $exception) {
+      $pass = ($exception->getMessage() == t('The second argument passed to entity_load must be FALSE or an array.'));
+    }
+    $this->assertTrue($pass, "Arguments are checked in entity_load().");
   }
 }
