diff --git a/lib/Cake/Core/Configure.php b/lib/Cake/Core/Configure.php
index 2772eb084..67cabfc50 100644
--- a/lib/Cake/Core/Configure.php
+++ b/lib/Cake/Core/Configure.php
@@ -312,7 +312,7 @@ class Configure {
 			$keys = array_keys($values);
 			foreach ($keys as $key) {
 				if (($c = self::read($key)) && is_array($values[$key]) && is_array($c)) {
-					$values[$key] = array_merge_recursive($c, $values[$key]);
+					$values[$key] = Set::merge($c, $values[$key]);
 				}
 			}
 		}
diff --git a/lib/Cake/Test/Case/Core/ConfigureTest.php b/lib/Cake/Test/Case/Core/ConfigureTest.php
index 746412fdf..5e94b5749 100644
--- a/lib/Cake/Test/Case/Core/ConfigureTest.php
+++ b/lib/Cake/Test/Case/Core/ConfigureTest.php
@@ -224,6 +224,8 @@ class ConfigureTest extends CakeTestCase {
 		$this->assertEquals('value2', Configure::read('Read'));
 		$this->assertEquals('buried2', Configure::read('Deep.Second.SecondDeepest'));
 		$this->assertEquals('buried', Configure::read('Deep.Deeper.Deepest'));
+		$this->assertEquals('Overwrite', Configure::read('TestAcl.classname'));
+		$this->assertEquals('one', Configure::read('TestAcl.custom'));
 	}
 
 /**
diff --git a/lib/Cake/Test/test_app/Config/var_test.php b/lib/Cake/Test/test_app/Config/var_test.php
index e0f3ae2a1..44c345563 100644
--- a/lib/Cake/Test/test_app/Config/var_test.php
+++ b/lib/Cake/Test/test_app/Config/var_test.php
@@ -5,5 +5,8 @@ $config = array(
 		'Deeper' => array(
 			'Deepest' => 'buried'
 		)
+	),
+	'TestAcl' => array(
+		'classname' => 'Original'
 	)
-);
\ No newline at end of file
+);
diff --git a/lib/Cake/Test/test_app/Config/var_test2.php b/lib/Cake/Test/test_app/Config/var_test2.php
index 33345b4ec..745b75dbc 100644
--- a/lib/Cake/Test/test_app/Config/var_test2.php
+++ b/lib/Cake/Test/test_app/Config/var_test2.php
@@ -5,5 +5,9 @@ $config = array(
 		'Second' => array(
 			'SecondDeepest' => 'buried2'
 		)
+	),
+	'TestAcl' => array(
+		'classname' => 'Overwrite',
+		'custom' => 'one'
 	)
-);
\ No newline at end of file
+);