diff --git a/includes/database/database.inc b/includes/database/database.inc
index 98f3497aec61371019cba112eb53d96b8067ba46..53732a982c6b5b374e7dca3de8e23150a7e2c20c 100644
--- a/includes/database/database.inc
+++ b/includes/database/database.inc
@@ -455,11 +455,17 @@ public function prefixTables($sql) {
    */
   public function prepareQuery($query, $cache = TRUE) {
     $query = $this->prefixTables($query);
-    if (empty($this->preparedStatements[$query])) {
+    if (isset($this->preparedStatements[$query])) {
+      $stmt = $this->preparedStatements[$query];
+    }
+    else {
       // Call PDO::prepare.
-      $this->preparedStatements[$query] = parent::prepare($query);
+      $stmt = parent::prepare($query);
+      if ($cache) {
+        $this->preparedStatements[$query] = $stmt;
+      }
     }
-    return $this->preparedStatements[$query];
+    return $stmt;
   }
 
   /**