SYNAPSE-1109: copy wsa:From value when creating request context
diff --git a/modules/core/src/main/java/org/apache/synapse/util/MessageHelper.java b/modules/core/src/main/java/org/apache/synapse/util/MessageHelper.java
index be5db21..9118875 100644
--- a/modules/core/src/main/java/org/apache/synapse/util/MessageHelper.java
+++ b/modules/core/src/main/java/org/apache/synapse/util/MessageHelper.java
@@ -238,6 +238,7 @@
         // do not copy options from the original
         newMC.setConfigurationContext(ori.getConfigurationContext());
         newMC.setMessageID(UIDGenerator.generateURNString());
+        newMC.setFrom(ori.getFrom());
         newMC.setTo(ori.getTo());
         newMC.setSoapAction(ori.getSoapAction());
 
diff --git a/modules/core/src/test/java/org/apache/synapse/util/MessageHelperTest.java b/modules/core/src/test/java/org/apache/synapse/util/MessageHelperTest.java
index e0298e4..eadf01c 100755
--- a/modules/core/src/test/java/org/apache/synapse/util/MessageHelperTest.java
+++ b/modules/core/src/test/java/org/apache/synapse/util/MessageHelperTest.java
@@ -47,4 +47,15 @@
         assertNotNull(dh);
         assertEquals("test", dh.getContent());
     }
+
+    // Test for SYNAPSE-1109
+    public void testClonePartiallyWithFrom() throws Exception {
+        String fromValue = "uri://some-from-value";
+        MessageContext origMc = new MessageContext();
+        origMc.setFrom(fromValue);
+        MessageContext newMc = MessageHelper.clonePartially(origMc);
+        Object result = newMc.getFrom();
+        assertEquals(fromValue, result);
+    }
+
 }