diff --git a/includes/DataHandler.inc b/includes/DataHandler.inc
index 3d2def7..2e8175d 100644
--- a/includes/DataHandler.inc
+++ b/includes/DataHandler.inc
@@ -44,7 +44,7 @@ class DataHandler {
   /**
    * Load a record.
    */
-  public function load($keys) {
+  public function load($keys = NULL) {
     $schema = drupal_get_schema($this->table);
     $fields = $schema['fields'];
     $query = db_select(db_escape_table($this->table))->fields(db_escape_table($this->table));
@@ -54,11 +54,8 @@ class DataHandler {
       }
       $query->condition($key, $value, is_array($value) ? 'IN' : '=');
     }
-    if ($query->getArguments()) {
-      $results = $query->execute()->fetchAll(PDO::FETCH_ASSOC);
-      return empty($results) ? FALSE : $results;
-    }
-    return FALSE;
+    $results = $query->execute()->fetchAll(PDO::FETCH_ASSOC);
+    return empty($results) ? FALSE : $results;
   }
 
   /**
diff --git a/tests/data.test b/tests/data.test
index 0989fc5..19d629b 100644
--- a/tests/data.test
+++ b/tests/data.test
@@ -56,6 +56,12 @@ class DataTestCaseAPI extends DataTestCase {
     $data = $handler->load(array('id' => 1));
     $this->assertEqual($data[0], $test_data[1], 'Loaded data matches saved data.');
 
+    // Load all records.
+    $data = $handler->load();
+    foreach ($test_data as $key => $value) {
+      $this->assertTrue(($data[$key] === $test_data[$key]), 'Loaded data matches saved data ' . "in entry $key.");
+    }
+
     // Manipulate second record, save and load.
     $data[0]['char0'] = 'test';
     $handler->save($data[0], array('id'));
@@ -199,4 +205,4 @@ class DataTestCaseAPI extends DataTestCase {
     $this->assertTrue(empty($meta_before), "DataTable::link(): The meta is empty before executing it");
     $this->assertTrue(!empty($meta_after), "DataTable::link(): The meta is not empty after executing it");
   }
-}
\ No newline at end of file
+}
