Index: src/main/java/org/apache/synapse/config/xml/endpoints/AddressEndpointFactory.java
===================================================================
--- src/main/java/org/apache/synapse/config/xml/endpoints/AddressEndpointFactory.java	(revision 646779)
+++ src/main/java/org/apache/synapse/config/xml/endpoints/AddressEndpointFactory.java	(working copy)
@@ -47,7 +47,7 @@
  *
  *      <enableRM [policy="key"]/>?
  *      <enableSec [policy="key"]/>?
- *      <enableAddressing/>?
+ *      <enableAddressing [version="uri"]/>?
  *      <suspendDurationOnFailure>suspend-duration</suspendDurationOnFailure>?
  *   </address>
  * </endpoint>
@@ -202,6 +202,11 @@
                 org.apache.synapse.config.xml.XMLConfigConstants.SYNAPSE_NAMESPACE, "enableAddressing"));
         if (wsAddr != null) {
             endpoint.setAddressingOn(true);
+            OMAttribute version = wsAddr.getAttribute(new QName(
+                    org.apache.synapse.config.xml.XMLConfigConstants.NULL_NAMESPACE, "version"));
+            if (version != null) {
+                endpoint.setAddressingVersion(version.getAttributeValue());
+            }
             String useSepList = wsAddr.getAttributeValue(new QName(
                     "separateListener"));
             if (useSepList != null) {
Index: src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java
===================================================================
--- src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java	(revision 646779)
+++ src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java	(working copy)
@@ -83,6 +83,7 @@
         boolean wsRMEnabled         = false;
         String wsRMPolicyKey        = null;
         boolean wsAddressingEnabled = false;
+        String wsAddressingVersion  = null;
 
         if (endpoint != null) {
             separateListener    = endpoint.isUseSeparateListener();
@@ -91,6 +92,7 @@
             wsRMEnabled         = endpoint.isReliableMessagingOn();
             wsRMPolicyKey       = endpoint.getWsRMPolicyKey();
             wsAddressingEnabled = endpoint.isAddressingOn() || wsSecurityEnabled || wsRMEnabled;
+            wsAddressingVersion = endpoint.getAddressingVersion();
         }
 
         if (log.isDebugEnabled()) {
@@ -178,9 +180,13 @@
         }
 
         if (wsAddressingEnabled) {
+            if (wsAddressingVersion != null) {
+                axisOutMsgCtx.setProperty
+                        (AddressingConstants.WS_ADDRESSING_VERSION, wsAddressingVersion);
+                
+            }
             axisOutMsgCtx.setProperty
                     (AddressingConstants.DISABLE_ADDRESSING_FOR_OUT_MESSAGES, Boolean.FALSE);
-
         } else {
             axisOutMsgCtx.setProperty
                     (AddressingConstants.DISABLE_ADDRESSING_FOR_OUT_MESSAGES, Boolean.TRUE);
Index: src/main/java/org/apache/synapse/endpoints/utils/EndpointDefinition.java
===================================================================
--- src/main/java/org/apache/synapse/endpoints/utils/EndpointDefinition.java	(revision 646779)
+++ src/main/java/org/apache/synapse/endpoints/utils/EndpointDefinition.java	(working copy)
@@ -42,6 +42,10 @@
      */
     private boolean addressingOn = false;
     /**
+     * The addressing namespace version
+     */
+    private String addressingVersion = null;
+    /**
      * Should messages be sent using WS-Security?
      */
     private boolean securityOn = false;
@@ -164,6 +168,24 @@
     }
 
     /**
+     * Get the addressing namespace version
+     *
+     * @return the adressing version
+     */
+    public String getAddressingVersion() {
+        return addressingVersion;
+    }
+
+    /**
+     * Set the addressing namespace version
+     *
+     * @param addressingVersion
+     */
+    public void setAddressingVersion(String addressingVersion) {
+        this.addressingVersion = addressingVersion;
+    }
+
+    /**
      * Is WS-Security turned on on this endpoint?
      *
      * @return true if on
