diff --git a/src/Lunr/Gravity/Database/DatabaseDMLQueryBuilder.php b/src/Lunr/Gravity/Database/DatabaseDMLQueryBuilder.php
index f635a4854356eecdbf313980d61e27d9c589ddea..fb5b3e9294d6067ee23558e94de2586fd5e55347 100644
--- a/src/Lunr/Gravity/Database/DatabaseDMLQueryBuilder.php
+++ b/src/Lunr/Gravity/Database/DatabaseDMLQueryBuilder.php
@@ -9,6 +9,7 @@
  * @author     Heinz Wiesinger <heinz@m2mobi.com>
  * @author     Olivier Wizen <olivier@m2mobi.com>
  * @author     Felipe Martinez <felipe@m2mobi.com>
+ * @author     Ruben de Groot <r.degroot@m2mobi.com>
  * @copyright  2012-2016, M2Mobi BV, Amsterdam, The Netherlands
  * @license    http://lunr.nl/LICENSE MIT License
  */
@@ -154,17 +155,17 @@ abstract class DatabaseDMLQueryBuilder implements DMLQueryBuilderInterface
     protected $connector;
 
     /**
-     * SQL Query part: Boolean identifying if the join is finished
+     * SQL Query part: Boolean identifying if the join is not finished
      * @var Boolean
      */
-    protected $is_join;
+    protected $is_unfinished_join;
 
     /**
      * Constructor.
      */
     public function __construct()
     {
-        $this->select           = '';
+        $this->select            = '';
         $this->select_mode      = array();
         $this->update           = '';
         $this->update_mode      = array();
@@ -185,7 +186,7 @@ abstract class DatabaseDMLQueryBuilder implements DMLQueryBuilderInterface
         $this->values           = '';
         $this->select_statement = '';
         $this->compound         = '';
-        $this->is_join          = FALSE;
+        $this->is_unfinished_join  = FALSE;
     }
 
     /**
@@ -214,7 +215,7 @@ abstract class DatabaseDMLQueryBuilder implements DMLQueryBuilderInterface
         unset($this->column_names);
         unset($this->values);
         unset($this->select_statement);
-        unset($this->is_join);
+        unset($this->is_unfinished_join);
     }
 
     /**
@@ -468,13 +469,9 @@ abstract class DatabaseDMLQueryBuilder implements DMLQueryBuilderInterface
 
         $this->join .= $join . $table_reference . $this->prepare_index_hints($index_hints);
 
-        if (substr($type, 0, 7) == 'NATURAL')
+        if (!(substr($type, 0, 7) == 'NATURAL'))
         {
-            $this->is_join = FALSE;
-        }
-        else
-        {
-            $this->is_join = TRUE;
+            $this->is_unfinished_join = TRUE;
         }
     }
 
@@ -598,9 +595,9 @@ abstract class DatabaseDMLQueryBuilder implements DMLQueryBuilderInterface
     {
         $condition = ($base === 'ON') ? 'join' : strtolower($base);
 
-        if (rtrim($this->$condition, '(') == '' || $this->is_join)
+        if (rtrim($this->$condition, '(') == '' || $this->is_unfinished_join)
         {
-            if ($this->is_join)
+            if ($this->is_unfinished_join)
             {
                 $this->$condition .= ' ' . $base . ' ';
             }
@@ -609,8 +606,8 @@ abstract class DatabaseDMLQueryBuilder implements DMLQueryBuilderInterface
                 $this->$condition = $base . ' ' . $this->$condition;
             }
 
-            $this->connector = '';
-            $this->is_join   = FALSE;
+            $this->connector       = '';
+            $this->is_unfinished_join = FALSE;
         }
         elseif ($this->connector != '')
         {
@@ -785,10 +782,10 @@ abstract class DatabaseDMLQueryBuilder implements DMLQueryBuilderInterface
     {
         $condition = ($condition === 'ON') ? 'join' : strtolower($condition);
 
-        if ($this->is_join)
+        if ($this->is_unfinished_join)
         {
-            $this->$condition .= 'ON ';
-            $this->is_join     = FALSE;
+            $this->$condition     .= 'ON ';
+            $this->is_unfinished_join = FALSE;
         }
         elseif ($this->connector != '')
         {
diff --git a/src/Lunr/Gravity/Database/Tests/DatabaseDMLQueryBuilderQueryPartsConditionTest.php b/src/Lunr/Gravity/Database/Tests/DatabaseDMLQueryBuilderQueryPartsConditionTest.php
index 3efa827ddd427aee4ad25446fb630267d117d85f..d3f6f387d79a1d35e19089acdcb4b224bfa725b6 100644
--- a/src/Lunr/Gravity/Database/Tests/DatabaseDMLQueryBuilderQueryPartsConditionTest.php
+++ b/src/Lunr/Gravity/Database/Tests/DatabaseDMLQueryBuilderQueryPartsConditionTest.php
@@ -64,7 +64,7 @@ class DatabaseDMLQueryBuilderQueryPartsConditionTest extends DatabaseDMLQueryBui
     {
         $method = $this->get_accessible_reflection_method('sql_condition');
 
-        $this->set_reflection_property_value('is_join', TRUE);
+        $this->set_reflection_property_value('is_unfinished_join', TRUE);
         $this->set_reflection_property_value('join', 'JOIN table');
 
         $method->invokeArgs($this->class, [ 'a', 'b', '=', 'ON' ]);
@@ -83,7 +83,7 @@ class DatabaseDMLQueryBuilderQueryPartsConditionTest extends DatabaseDMLQueryBui
     {
         $method = $this->get_accessible_reflection_method('sql_condition');
 
-        $this->set_reflection_property_value('is_join', FALSE);
+        $this->set_reflection_property_value('is_unfinished_join', FALSE);
 
         $this->set_reflection_property_value('join', 'JOIN table ON (');
 
diff --git a/src/Lunr/Gravity/Database/Tests/DatabaseDMLQueryBuilderQueryPartsJoinTest.php b/src/Lunr/Gravity/Database/Tests/DatabaseDMLQueryBuilderQueryPartsJoinTest.php
index 530fc9d87333250cadfc5d3cec86550c474156e4..f336945404c735f61e71cd7ce1306bc8d48fab1d 100644
--- a/src/Lunr/Gravity/Database/Tests/DatabaseDMLQueryBuilderQueryPartsJoinTest.php
+++ b/src/Lunr/Gravity/Database/Tests/DatabaseDMLQueryBuilderQueryPartsJoinTest.php
@@ -192,31 +192,33 @@ class DatabaseDMLQueryBuilderQueryPartsJoinTest extends DatabaseDMLQueryBuilderT
     }
 
     /**
-     * Test that specifying a join clause sets the property is_join to finished
+     * Test that specifying a join clause sets the property is_unfinished_join to FALSE
+     * when there is a natural join.
      *
      * @covers Lunr\Gravity\Database\DatabaseDMLQueryBuilder::sql_join
      */
-    public function testNaturalJoin()
+    public function testJoinSetsUnfinishedJoinWithNaturalJoin()
     {
         $method = $this->get_accessible_reflection_method('sql_join');
 
         $method->invokeArgs($this->class, [ 'table', 'NATURAL LEFT JOIN' ]);
 
-        $this->assertFalse($this->get_reflection_property_value('is_join'));
+        $this->assertFalse($this->get_reflection_property_value('is_unfinished_join'));
     }
 
     /**
-     * Test that specifying a join clause sets the property is_join.
+     * Test that specifying a join clause sets the property is_unfinished_join to TRUE
+     * when the join still has to be finished.
      *
      * @covers Lunr\Gravity\Database\DatabaseDMLQueryBuilder::sql_join
      */
-    public function testJoinSetsIsJoin()
+    public function testJoinSetsUnfinishedJoin()
     {
         $method = $this->get_accessible_reflection_method('sql_join');
 
         $method->invokeArgs($this->class, [ 'table', 'INNER' ]);
 
-        $this->assertTrue($this->get_reflection_property_value('is_join'));
+        $this->assertTrue($this->get_reflection_property_value('is_unfinished_join'));
     }
 
 }
diff --git a/src/Lunr/Gravity/Database/Tests/DatabaseDMLQueryBuilderQueryPartsTest.php b/src/Lunr/Gravity/Database/Tests/DatabaseDMLQueryBuilderQueryPartsTest.php
index eb5147a5116c1a8721dcfbec4b9678710b5da2dd..a5e89a169e4f1718ef25aa8992d6a2682ecd224c 100644
--- a/src/Lunr/Gravity/Database/Tests/DatabaseDMLQueryBuilderQueryPartsTest.php
+++ b/src/Lunr/Gravity/Database/Tests/DatabaseDMLQueryBuilderQueryPartsTest.php
@@ -238,23 +238,23 @@ class DatabaseDMLQueryBuilderQueryPartsTest extends DatabaseDMLQueryBuilderTest
     */
     public function testOpenGroupIfJoin()
     {
-        $this->set_reflection_property_value('is_join', TRUE);
+        $this->set_reflection_property_value('is_unfinished_join', TRUE);
 
         $method = $this->get_accessible_reflection_method('sql_group_start');
         $method->invokeArgs($this->class, [ 'ON' ]);
 
         $this->assertEquals('ON (', $this->get_reflection_property_value('join'));
-        $this->assertFalse($this->get_reflection_property_value('is_join'));
+        $this->assertFalse($this->get_reflection_property_value('is_unfinished_join'));
     }
 
     /**
-     * Test grouping condition start with active join statement.
+     * Test grouping condition start with closed join statement.
      *
      * @covers Lunr\Gravity\Database\DatabaseDMLQueryBuilder::sql_group_start
      */
     public function testOpenGroupIfNaturalJoin()
     {
-        $this->set_reflection_property_value('is_join', FALSE);
+        $this->set_reflection_property_value('is_unfinished_join', FALSE);
 
         $method = $this->get_accessible_reflection_method('sql_group_start');
         $method->invokeArgs($this->class, [ 'WHERE' ]);
