diff --git a/src/Lunr/Gravity/Database/DatabaseDMLQueryBuilder.php b/src/Lunr/Gravity/Database/DatabaseDMLQueryBuilder.php
index be83d28f823733d7ac7add0adf9dc6ab3c01e406..f635a4854356eecdbf313980d61e27d9c589ddea 100644
--- a/src/Lunr/Gravity/Database/DatabaseDMLQueryBuilder.php
+++ b/src/Lunr/Gravity/Database/DatabaseDMLQueryBuilder.php
@@ -154,7 +154,7 @@ abstract class DatabaseDMLQueryBuilder implements DMLQueryBuilderInterface
     protected $connector;
 
     /**
-     * SQL Query part: Boolean identifying if we are joining tables
+     * SQL Query part: Boolean identifying if the join is finished
      * @var Boolean
      */
     protected $is_join;
@@ -458,6 +458,7 @@ abstract class DatabaseDMLQueryBuilder implements DMLQueryBuilderInterface
     protected function sql_join($table_reference, $type, $index_hints = NULL)
     {
         $type = strtoupper($type);
+
         $join = ($type == 'STRAIGHT') ? 'STRAIGHT_JOIN ' : ltrim($type . ' JOIN ');
 
         if ($this->join != '')
@@ -467,7 +468,14 @@ abstract class DatabaseDMLQueryBuilder implements DMLQueryBuilderInterface
 
         $this->join .= $join . $table_reference . $this->prepare_index_hints($index_hints);
 
-        $this->is_join = TRUE;
+        if (substr($type, 0, 7) == 'NATURAL')
+        {
+            $this->is_join = FALSE;
+        }
+        else
+        {
+            $this->is_join = TRUE;
+        }
     }
 
     /**
@@ -756,13 +764,10 @@ abstract class DatabaseDMLQueryBuilder implements DMLQueryBuilderInterface
      */
     protected function prepare_index_hints($index_hints)
     {
-        if (is_array($index_hints) && !empty($index_hints))
-        {
+        if (is_array($index_hints) && !empty($index_hints)) {
             $index_hints = array_diff($index_hints, array(NULL));
-            $hints       = ' ' . implode(', ', $index_hints);
-        }
-        else
-        {
+            $hints = ' ' . implode(', ', $index_hints);
+        } else {
             $hints = '';
         }
 
@@ -772,7 +777,7 @@ abstract class DatabaseDMLQueryBuilder implements DMLQueryBuilderInterface
     /**
      * Open the parentheses for the sql condition.
      *
-     * @param String $condition String indicationg Statement to group
+     * @param String $condition String indication Statement to group
      *
      * @return void
      */
@@ -801,7 +806,7 @@ abstract class DatabaseDMLQueryBuilder implements DMLQueryBuilderInterface
     /**
      * Close the parentheses for the sql condition.
      *
-     * @param String $condition String indicationg Statement to group
+     * @param String $condition String indication Statement to group
      *
      * @return void
      */
diff --git a/src/Lunr/Gravity/Database/Tests/DatabaseDMLQueryBuilderQueryPartsJoinTest.php b/src/Lunr/Gravity/Database/Tests/DatabaseDMLQueryBuilderQueryPartsJoinTest.php
index 5e6a1d99654fc2e6abc22fdca86d43dcd512c3ea..530fc9d87333250cadfc5d3cec86550c474156e4 100644
--- a/src/Lunr/Gravity/Database/Tests/DatabaseDMLQueryBuilderQueryPartsJoinTest.php
+++ b/src/Lunr/Gravity/Database/Tests/DatabaseDMLQueryBuilderQueryPartsJoinTest.php
@@ -192,6 +192,20 @@ class DatabaseDMLQueryBuilderQueryPartsJoinTest extends DatabaseDMLQueryBuilderT
     }
 
     /**
+     * Test that specifying a join clause sets the property is_join to finished
+     *
+     * @covers Lunr\Gravity\Database\DatabaseDMLQueryBuilder::sql_join
+     */
+    public function testNaturalJoin()
+    {
+        $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'));
+    }
+
+    /**
      * Test that specifying a join clause sets the property is_join.
      *
      * @covers Lunr\Gravity\Database\DatabaseDMLQueryBuilder::sql_join
diff --git a/src/Lunr/Gravity/Database/Tests/DatabaseDMLQueryBuilderQueryPartsTest.php b/src/Lunr/Gravity/Database/Tests/DatabaseDMLQueryBuilderQueryPartsTest.php
index b6e6561490ed4d3742e213f561a8db6eb504a834..eb5147a5116c1a8721dcfbec4b9678710b5da2dd 100644
--- a/src/Lunr/Gravity/Database/Tests/DatabaseDMLQueryBuilderQueryPartsTest.php
+++ b/src/Lunr/Gravity/Database/Tests/DatabaseDMLQueryBuilderQueryPartsTest.php
@@ -248,6 +248,21 @@ class DatabaseDMLQueryBuilderQueryPartsTest extends DatabaseDMLQueryBuilderTest
     }
 
     /**
+     * Test grouping condition start with active join statement.
+     *
+     * @covers Lunr\Gravity\Database\DatabaseDMLQueryBuilder::sql_group_start
+     */
+    public function testOpenGroupIfNaturalJoin()
+    {
+        $this->set_reflection_property_value('is_join', FALSE);
+
+        $method = $this->get_accessible_reflection_method('sql_group_start');
+        $method->invokeArgs($this->class, [ 'WHERE' ]);
+
+        $this->assertEquals('', $this->get_reflection_property_value('join'));
+    }
+
+    /**
     * Test grouping condition start.
     *
     * @param String $keyword   The expected statement keyword
