diff --git a/src/Spring/Spring.Core/Objects/Factory/Support/AbstractObjectFactory.cs b/src/Spring/Spring.Core/Objects/Factory/Support/AbstractObjectFactory.cs
index 1b990cc9b..3671f31a9 100644
--- a/src/Spring/Spring.Core/Objects/Factory/Support/AbstractObjectFactory.cs
+++ b/src/Spring/Spring.Core/Objects/Factory/Support/AbstractObjectFactory.cs
@@ -1685,7 +1685,7 @@ protected object TemporarySingletonPlaceHolder
///
/// String Resolver applied to Autowired value injections
///
- private ISet embeddedValueResolvers = new SortedSet();
+ private ISet embeddedValueResolvers = new SortedSet(new ObjectOrderComparator());
///
/// Indicates whether any IInstantiationAwareBeanPostProcessors have been registered
diff --git a/test/Spring/Spring.Core.Tests/Data/Spring/Objects/Factory/Config/FirstPropertyPlaceholderConfigurer.xml b/test/Spring/Spring.Core.Tests/Data/Spring/Objects/Factory/Config/FirstPropertyPlaceholderConfigurer.xml
new file mode 100644
index 000000000..a486550ec
--- /dev/null
+++ b/test/Spring/Spring.Core.Tests/Data/Spring/Objects/Factory/Config/FirstPropertyPlaceholderConfigurer.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/test/Spring/Spring.Core.Tests/Data/Spring/Objects/Factory/Config/SecondPropertyPlaceholderConfigurer.xml b/test/Spring/Spring.Core.Tests/Data/Spring/Objects/Factory/Config/SecondPropertyPlaceholderConfigurer.xml
new file mode 100644
index 000000000..0d5c4ed15
--- /dev/null
+++ b/test/Spring/Spring.Core.Tests/Data/Spring/Objects/Factory/Config/SecondPropertyPlaceholderConfigurer.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/test/Spring/Spring.Core.Tests/Objects/Factory/Config/PropertyPlaceholderConfigurerTests.cs b/test/Spring/Spring.Core.Tests/Objects/Factory/Config/PropertyPlaceholderConfigurerTests.cs
index dd02a3c24..205c23bf8 100644
--- a/test/Spring/Spring.Core.Tests/Objects/Factory/Config/PropertyPlaceholderConfigurerTests.cs
+++ b/test/Spring/Spring.Core.Tests/Objects/Factory/Config/PropertyPlaceholderConfigurerTests.cs
@@ -635,5 +635,21 @@ public void WithTypes()
Assert.AreEqual(2, to.Computers.Count);
Assert.IsTrue(to.PeriodicTable.Contains("C"));
}
+
+ [Test]
+ public void WithMultipleXml_MultiplePropertyPlaceholderConfigurersAndOrder_CanReplaceValueFromOtherXml()
+ {
+ var context =
+ new XmlApplicationContext(
+ new[]
+ {
+ "file://Spring/Objects/Factory/Config/FirstPropertyPlaceholderConfigurer.xml",
+ "file://Spring/Objects/Factory/Config/SecondPropertyPlaceholderConfigurer.xml"
+ });
+
+ var testObject = context.GetObject("testObject");
+
+ Assert.AreEqual("correct_name", testObject.Name);
+ }
}
}
diff --git a/test/Spring/Spring.Core.Tests/Spring.Core.Tests.2010.csproj b/test/Spring/Spring.Core.Tests/Spring.Core.Tests.2010.csproj
index c9f8b9c70..3316ffa63 100644
--- a/test/Spring/Spring.Core.Tests/Spring.Core.Tests.2010.csproj
+++ b/test/Spring/Spring.Core.Tests/Spring.Core.Tests.2010.csproj
@@ -872,6 +872,8 @@
+
+