Index: include/axis2_soap_over_http_sender.h
===================================================================
--- include/axis2_soap_over_http_sender.h	(revision 511064)
+++ include/axis2_soap_over_http_sender.h	(working copy)
@@ -35,6 +35,7 @@
 #include <axiom_output.h>
 #include <axis2_http_simple_response.h>
 #include <axiom_soap_envelope.h>
+#include <axis2_http_client.h>
 
 
 #ifdef __cplusplus
@@ -73,6 +74,11 @@
                     const axis2_char_t *str_url,
                     const axis2_char_t *soap_action);
 
+        axis2_http_client_t* (AXIS2_CALL *
+                get_client)(
+                    axis2_soap_over_http_sender_t *sender,
+                    const axis2_env_t *env);
+
         /**
          * @param sender sender
          * @param env pointer to environment struct
@@ -184,6 +190,9 @@
                   soap_action) ((sender)->ops->send (sender, env, msg_ctx\
                   ,output, url, soap_action))
 
+#define AXIS2_SOAP_OVER_HTTP_SENDER_GET_CLIENT(sender, env) \
+                        ((sender)->ops->get_client(sender, env))
+
 /** Set chunked.
     @sa axis2_soap_over_http_sender_ops#set_chunked */
 #define AXIS2_SOAP_OVER_HTTP_SENDER_SET_CHUNKED(sender, env, chunked) \
Index: modules/core/transport/http/sender/http_transport_sender.c
===================================================================
--- modules/core/transport/http/sender/http_transport_sender.c	(revision 511064)
+++ modules/core/transport/http/sender/http_transport_sender.c	(working copy)
@@ -547,6 +547,7 @@
 	const axis2_char_t *soap_ns_uri = NULL;
 	axiom_soap_envelope_t *response_envelope = NULL;
 	axis2_op_t *op = NULL;
+    axis2_http_client_t *client = NULL;
 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, msg_ctx, AXIS2_FAILURE);
@@ -615,6 +616,10 @@
         status = AXIS2_SOAP_OVER_HTTP_SENDER_SEND(sender, env, msg_ctx, out, url
                 , soap_action);
 
+        /* Get the client used to send.  We will own this, and free it after
+         * having read the response */
+        client = AXIS2_SOAP_OVER_HTTP_SENDER_GET_CLIENT(sender, env);
+
 		/*
          * TODO check for errors
          */
@@ -642,14 +647,31 @@
 		}
     }
 
+    /* Free the client */
+    if (client)
+    {
+        AXIS2_HTTP_CLIENT_FREE(client, env);
+        client = NULL;
+    }
+
     return status;
 }
 
 /**
  * Following block distinguish the exposed part of the dll.
  */
+
+/* When building for static deployment, give the get and remove methods
+ * unique names.  This avoids having the linker fail with duplicate symbol
+ * errors.
+ */
+
 AXIS2_EXPORT int
+#ifndef AXIS2_STATIC_DEPLOY
 axis2_get_instance(
+#else
+axis2_http_transport_sender_get_instance(
+#endif
     struct axis2_transport_sender **inst,
     const axis2_env_t *env)
 {
@@ -664,7 +686,11 @@
 }
 
 AXIS2_EXPORT int
+#ifndef AXIS2_STATIC_DEPLOY
 axis2_remove_instance(
+#else
+axis2_http_transport_sender_remove_instance(
+#endif
     axis2_transport_sender_t *inst,
     const axis2_env_t *env)
 {
Index: modules/core/transport/http/sender/soap_over_http_sender.c
===================================================================
--- modules/core/transport/http/sender/soap_over_http_sender.c	(revision 511064)
+++ modules/core/transport/http/sender/soap_over_http_sender.c	(working copy)
@@ -80,6 +80,11 @@
     const axis2_char_t *str_url,
     const axis2_char_t *soap_action);
 
+axis2_http_client_t* AXIS2_CALL
+axis2_soap_over_http_sender_get_client(
+    axis2_soap_over_http_sender_t *sender,
+    const axis2_env_t *env);
+
 axis2_status_t AXIS2_CALL
 axis2_soap_over_http_sender_set_chunked(
     axis2_soap_over_http_sender_t *sender,
@@ -162,6 +167,8 @@
 
     sender_impl->sender.ops->send =
         axis2_soap_over_http_sender_send;
+    sender_impl->sender.ops->get_client =
+        axis2_soap_over_http_sender_get_client;
     sender_impl->sender.ops->set_chunked =
         axis2_soap_over_http_sender_set_chunked;
     sender_impl->sender.ops->set_om_output =
@@ -557,6 +564,16 @@
 }
 
 
+axis2_http_client_t* AXIS2_CALL
+axis2_soap_over_http_sender_get_client(
+    axis2_soap_over_http_sender_t *sender,
+    const axis2_env_t *env)
+{
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    return AXIS2_INTF_TO_IMPL(sender)->client;
+}
+
+
 axis2_status_t AXIS2_CALL
 axis2_soap_over_http_sender_set_chunked(
     axis2_soap_over_http_sender_t *sender,
