diff --git a/includes/file.inc b/includes/file.inc
index d73266cb4fa7a8556160100a20182f4c15c7eb40..451778ca5d10cc5da4158e3876d4248ad1926dac 100644
--- a/includes/file.inc
+++ b/includes/file.inc
@@ -494,6 +494,11 @@ function file_check_location($source, $directory = '') {
  * @see file_load()
  */
 function file_load_multiple($fids = array(), $conditions = array()) {
+  // If they don't provide any criteria return nothing rather than all files.
+  if (!$fids && !$conditions) {
+    return array();
+  }
+
   $query = db_select('files', 'f')->fields('f');
 
   // If the $fids array is populated, add those to the query.
diff --git a/modules/simpletest/tests/file.test b/modules/simpletest/tests/file.test
index 754505b63d6747902b63ea477695a83924d08ceb..23c1d1241096750ac36eb0fb4ae67f4c74a5dbf5 100644
--- a/modules/simpletest/tests/file.test
+++ b/modules/simpletest/tests/file.test
@@ -598,6 +598,9 @@ class FileSaveUploadTest extends FileHookTestCase {
     $files = file_load_multiple(array($file1->fid, $file2->fid));
     $this->assertTrue(isset($files[$file1->fid]), t('File was loaded successfully'));
     $this->assertTrue(isset($files[$file2->fid]), t('File was loaded successfully'));
+
+    // Check that file_load_multiple() with no arguments returns FALSE.
+    $this->assertFalse(file_load_multiple(), t('No files were loaded.'));
   }