Index: modules/core/src/main/java/org/apache/synapse/mediators/builtin/CalloutMediator.java
===================================================================
--- modules/core/src/main/java/org/apache/synapse/mediators/builtin/CalloutMediator.java	(revision 14596)
+++ modules/core/src/main/java/org/apache/synapse/mediators/builtin/CalloutMediator.java	(working copy)
@@ -34,6 +34,7 @@
 import org.apache.synapse.*;
 import org.apache.synapse.core.SynapseEnvironment;
 import org.apache.synapse.core.axis2.Axis2MessageContext;
+import org.apache.synapse.core.axis2.Axis2SynapseEnvironment;
 import org.apache.synapse.mediators.AbstractMediator;
 import org.apache.synapse.util.MessageHelper;
 import org.apache.synapse.util.xpath.SynapseXPath;
@@ -58,7 +59,8 @@
     private SynapseXPath targetXPath = null;
     private String targetKey = null;
     private String clientRepository = null;
-    private String axis2xml = null;
+    private String axis2xml = null;
+    private String useServerConfig = null;
     private boolean initClientOptions = true;
     public final static String DEFAULT_CLIENT_REPO = "./samples/axis2Client/client_repo";
     public final static String DEFAULT_AXIS2_XML = "./samples/axis2Client/client_repo/conf/axis2.xml";
@@ -230,9 +232,13 @@
 
     public void init(SynapseEnvironment synEnv) {
         try {
-            configCtx = ConfigurationContextFactory.createConfigurationContextFromFileSystem(
-                    clientRepository != null ? clientRepository : DEFAULT_CLIENT_REPO,
-            axis2xml != null ? axis2xml : DEFAULT_AXIS2_XML);
+        	if (Boolean.parseBoolean(useServerConfig)) {
+        		configCtx = ((Axis2SynapseEnvironment) synEnv).getAxis2ConfigurationContext(); 
+        	} else {
+	            configCtx = ConfigurationContextFactory.createConfigurationContextFromFileSystem(
+	                    clientRepository != null ? clientRepository : DEFAULT_CLIENT_REPO,
+	            axis2xml != null ? axis2xml : DEFAULT_AXIS2_XML);
+        	}
         } catch (AxisFault e) {
             String msg = "Error initializing callout mediator : " + e.getMessage();
             log.error(msg, e);
@@ -261,6 +267,14 @@
     public void setAction(String action) {
         this.action = action;
     }
+    
+    public String getUseServerConfig() {
+    	return useServerConfig;
+    }
+    
+    public void setUseServerConfig(String useServerConfig) {
+    	this.useServerConfig = useServerConfig;
+    }
 
     public String getRequestKey() {
         return requestKey;
Index: modules/core/src/main/java/org/apache/synapse/config/xml/CalloutMediatorFactory.java
===================================================================
--- modules/core/src/main/java/org/apache/synapse/config/xml/CalloutMediatorFactory.java	(revision 14596)
+++ modules/core/src/main/java/org/apache/synapse/config/xml/CalloutMediatorFactory.java	(working copy)
@@ -47,7 +47,8 @@
     private static final QName ATT_URL = new QName("serviceURL");
     private static final QName ATT_ACTION = new QName("action");
     private static final QName ATT_AXIS2XML = new QName("axis2xml");
-    private static final QName ATT_REPOSITORY = new QName("repository");
+    private static final QName ATT_REPOSITORY = new QName("repository");
+    private static final QName ATT_USESERVERCONFIG = new QName("useServerConfig");
     private static final QName ATT_INIT_AXI2_CLIENT_OPTIONS = new QName("initAxis2ClientOptions");
     private static final QName Q_CONFIG
             = new QName(XMLConfigConstants.SYNAPSE_NAMESPACE, "configuration");
@@ -61,7 +62,8 @@
         CalloutMediator callout = new CalloutMediator();
 
         OMAttribute attServiceURL = elem.getAttribute(ATT_URL);
-        OMAttribute attAction     = elem.getAttribute(ATT_ACTION);
+        OMAttribute attAction     = elem.getAttribute(ATT_ACTION);
+        OMAttribute attUseServerConfig = elem.getAttribute(ATT_USESERVERCONFIG);
         OMAttribute initAxis2ClientOptions = elem.getAttribute(ATT_INIT_AXI2_CLIENT_OPTIONS);
         OMElement   configElt     = elem.getFirstChildWithName(Q_CONFIG);
         OMElement   sourceElt     = elem.getFirstChildWithName(Q_SOURCE);
@@ -75,6 +77,10 @@
 
         if (attAction != null) {
             callout.setAction(attAction.getAttributeValue());
+        }
+        
+        if (attUseServerConfig != null) {
+        	callout.setUseServerConfig(attUseServerConfig.getAttributeValue());
         }
 
         if (initAxis2ClientOptions != null) {
Index: modules/core/src/main/java/org/apache/synapse/config/xml/CalloutMediatorSerializer.java
===================================================================
--- modules/core/src/main/java/org/apache/synapse/config/xml/CalloutMediatorSerializer.java	(revision 14596)
+++ modules/core/src/main/java/org/apache/synapse/config/xml/CalloutMediatorSerializer.java	(working copy)
@@ -48,6 +48,10 @@
         if (mediator.getAction() != null) {
             callout.addAttribute(fac.createOMAttribute("action", nullNS, mediator.getAction()));
         }
+        
+        if (mediator.getUseServerConfig() != null) {
+            callout.addAttribute(fac.createOMAttribute("useServerConfig", nullNS, mediator.getUseServerConfig()));
+        }
 
         if (!mediator.getInitClientOptions()) {
             callout.addAttribute(fac.createOMAttribute(
