diff --git a/includes/database/query.inc b/includes/database/query.inc
index 9cdd878..c779687 100644
--- a/includes/database/query.inc
+++ b/includes/database/query.inc
@@ -1704,6 +1704,9 @@ class DatabaseCondition implements QueryConditionInterface, Countable {
       if (is_array($value)) {
         $operator = 'IN';
       }
+      elseif (!isset($value)) {
+        $operator = 'IS NULL';
+      }
       else {
         $operator = '=';
       }
@@ -1737,7 +1740,7 @@ class DatabaseCondition implements QueryConditionInterface, Countable {
    * Implements QueryConditionInterface::isNull().
    */
   public function isNull($field) {
-    return $this->condition($field, NULL, 'IS NULL');
+    return $this->condition($field);
   }
 
   /**
diff --git a/modules/simpletest/tests/database_test.test b/modules/simpletest/tests/database_test.test
index 91a51f3..87d386a 100644
--- a/modules/simpletest/tests/database_test.test
+++ b/modules/simpletest/tests/database_test.test
@@ -1454,23 +1454,9 @@ class DatabaseSelectTestCase extends DatabaseTestCase {
   }
 
   /**
-   * Test that a comparison with NULL is always FALSE.
-   */
-  function testNullCondition() {
-    $this->ensureSampleDataNull();
-
-    $names = db_select('test_null', 'tn')
-      ->fields('tn', array('name'))
-      ->condition('age', NULL)
-      ->execute()->fetchCol();
-
-    $this->assertEqual(count($names), 0, t('No records found when comparing to NULL.'));
-  }
-
-  /**
    * Test that we can find a record with a NULL value.
    */
-  function testIsNullCondition() {
+  function testNullCondition() {
     $this->ensureSampleDataNull();
 
     $names = db_select('test_null', 'tn')
@@ -1485,7 +1471,7 @@ class DatabaseSelectTestCase extends DatabaseTestCase {
   /**
    * Test that we can find a record without a NULL value.
    */
-  function testIsNotNullCondition() {
+  function testNotNullCondition() {
     $this->ensureSampleDataNull();
 
     $names = db_select('test_null', 'tn')
