diff --git a/lib/protocol/packets/RowDataPacket.js b/lib/protocol/packets/RowDataPacket.js
index 82fa13481..1d7b4c1df 100644
--- a/lib/protocol/packets/RowDataPacket.js
+++ b/lib/protocol/packets/RowDataPacket.js
@@ -41,7 +41,7 @@ function parse(parser, fieldPackets, typeCast, nestTables, connection) {
 
     if (typeof nestTables == "string" && nestTables.length) {
       this[fieldPacket.table + nestTables + fieldPacket.name] = value;
-    } else if (nestTables) {
+    } else if (nestTables && fieldPacket.table !== '') {
       this[fieldPacket.table] = this[fieldPacket.table] || {};
       this[fieldPacket.table][fieldPacket.name] = value;
     } else {
diff --git a/test/integration/connection/test-nested-tables-query.js b/test/integration/connection/test-nested-tables-query.js
index ee04cf6c0..9a63ac4c7 100644
--- a/test/integration/connection/test-nested-tables-query.js
+++ b/test/integration/connection/test-nested-tables-query.js
@@ -9,7 +9,7 @@ common.getTestConnection(function (err, connection) {
   common.useTestDb(connection);
 
   connection.query([
-    'CREATE TEMPORARY TABLE ?? (',
+    'CREATE TABLE ?? (',
     '`id` int(11) unsigned NOT NULL AUTO_INCREMENT,',
     '`title` varchar(255),',
     'PRIMARY KEY (`id`)',
@@ -32,5 +32,14 @@ common.getTestConnection(function (err, connection) {
     assert.equal(rows[0].nested_test_title, 'test');
   });
 
+  connection.query({nestTables: true, sql: 'SELECT ??.id, (SELECT title FROM ?? WHERE title = \'test\') as title FROM ??', values: [table, table, table]}, function (err, rows) {
+    assert.ifError(err);
+    assert.equal(rows.length, 1);
+    assert.equal(rows[0].nested_test.id, 1);
+    assert.equal(rows[0].title, 'test');
+  });
+
+  connection.query('DROP TABLE ??', [table]);
+
   connection.end(assert.ifError);
 });