diff --git a/phpBB/includes/db/dbal.php b/phpBB/includes/db/dbal.php
index 9b45c085a2..b4c1a72e1c 100644
--- a/phpBB/includes/db/dbal.php
+++ b/phpBB/includes/db/dbal.php
@@ -609,7 +609,7 @@ class dbal
 					}
 				}
 
-				$sql .= $this->_sql_custom_build('FROM', implode(', ', $table_array));
+				$sql .= $this->_sql_custom_build('FROM', implode(' CROSS JOIN ', $table_array));
 
 				if (!empty($array['LEFT_JOIN']))
 				{
diff --git a/tests/dbal/cross_join_test.php b/tests/dbal/cross_join_test.php
new file mode 100644
index 0000000000..7110c7a2ea
--- /dev/null
+++ b/tests/dbal/cross_join_test.php
@@ -0,0 +1,55 @@
+<?php
+/**
+*
+* @package testing
+* @copyright (c) 2011 phpBB Group
+* @license http://opensource.org/licenses/gpl-license.php GNU Public License
+*
+*/
+
+require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php';
+require_once dirname(__FILE__) . '/../../phpBB/includes/utf/utf_tools.php';
+
+class phpbb_dbal_cross_join_test extends phpbb_database_test_case
+{
+	public function getDataSet()
+	{
+		return $this->createXMLDataSet(dirname(__FILE__).'/fixtures/massmail_crossjoin.xml');
+	}
+
+	public function test_cross_join()
+	{
+		$db = $this->new_dbal();
+
+		// http://tracker.phpbb.com/browse/PHPBB3-10296
+		// Test CROSS JOIN with INNER JOIN
+		// Failed on Postgres, MSSQL and Oracle
+		$db->sql_return_on_error(true);
+
+		$sql_ary = array(
+			'SELECT'	=> 'u.username',
+			'FROM'		=> array(
+				'phpbb_users'		=> 'u',
+				'phpbb_user_group'	=> 'ug',
+			),
+			'LEFT_JOIN'	=> array(
+				array(
+					'FROM'	=> array(
+						'phpbb_banlist'	=> 'b',
+					),
+					'ON'	=> 'u.user_id = b.ban_userid',
+				),
+			),
+			'WHERE'		=> 'ug.group_id = 1
+				AND u.user_id = ug.user_id
+				AND b.ban_id IS NULL',
+			'ORDER_BY'	=> 'u.username',
+		);
+		$sql = $db->sql_build_query('SELECT', $sql_ary);
+		$result = $db->sql_query($sql);
+
+		$db->sql_return_on_error(false);
+
+		$this->assertEquals(array(array('username' => 'mass email')), $db->sql_fetchrowset($result));
+	}
+}
diff --git a/tests/dbal/fixtures/massmail_crossjoin.xml b/tests/dbal/fixtures/massmail_crossjoin.xml
new file mode 100644
index 0000000000..801205eb81
--- /dev/null
+++ b/tests/dbal/fixtures/massmail_crossjoin.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<dataset>
+	<table name="phpbb_banlist">
+		<column>ban_id</column>
+		<column>ban_userid</column>
+		<row>
+			<value>1</value>
+			<value>2</value>
+		</row>
+	</table>
+	<table name="phpbb_users">
+		<column>user_id</column>
+		<column>username</column>
+		<column>username_clean</column>
+		<row>
+			<value>1</value>
+			<value>mass email</value>
+			<value>mass email</value>
+		</row>
+		<row>
+			<value>2</value>
+			<value>banned</value>
+			<value>banned</value>
+		</row>
+		<row>
+			<value>3</value>
+			<value>not in group</value>
+			<value>not in group</value>
+		</row>
+	</table>
+	<table name="phpbb_user_group">
+		<column>user_id</column>
+		<column>group_id</column>
+		<row>
+			<value>1</value>
+			<value>1</value>
+		</row>
+		<row>
+			<value>2</value>
+			<value>1</value>
+		</row>
+	</table>
+</dataset>