diff -Naur old/src/activemq-optional/src/main/java/org/apache/activemq/transport/http/HttpClientTransport.java new/src/activemq-optional/src/main/java/org/apache/activemq/transport/http/HttpClientTransport.java
--- old/src/activemq-optional/src/main/java/org/apache/activemq/transport/http/HttpClientTransport.java	2008-05-01 20:54:05.000000000 +0200
+++ new/src/activemq-optional/src/main/java/org/apache/activemq/transport/http/HttpClientTransport.java	2008-05-08 15:02:49.000000000 +0200
@@ -33,6 +33,8 @@
 import org.apache.commons.httpclient.methods.GetMethod;
 import org.apache.commons.httpclient.methods.HeadMethod;
 import org.apache.commons.httpclient.methods.PostMethod;
+import org.apache.commons.httpclient.UsernamePasswordCredentials;
+import org.apache.commons.httpclient.auth.AuthScope;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -137,9 +139,13 @@
                 onException(IOExceptionSupport.create("Failed to perform GET on: " + remoteUrl + " Reason: " + e.getMessage(), e));
                 break;
             } finally {
-                httpMethod.getResponseBody();
-                httpMethod.releaseConnection();
-            }
+		try {
+			httpMethod.getResponseBody();
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		httpMethod.releaseConnection();
+	    }
         }
     }
 
@@ -189,11 +195,17 @@
     protected void doStop(ServiceStopper stopper) throws Exception {
     }
 
-    protected HttpClient createHttpClient() {
+ protected HttpClient createHttpClient() {
         HttpClient client = new HttpClient();
         if (getProxyHost() != null) {
             client.getHostConfiguration().setProxy(getProxyHost(), getProxyPort());
         }
+        if(getProxyUser() != null && getProxyPassword() != null) {
+           client.getState().setProxyCredentials(
+                new AuthScope(getProxyHost(),  getProxyPort()),
+                new  UsernamePasswordCredentials(getProxyUser(),
+                                                 getProxyPassword()));
+        }
         return client;
     }
 
diff -Naur old/src/activemq-optional/src/main/java/org/apache/activemq/transport/http/HttpTransportSupport.java new/src/activemq-optional/src/main/java/org/apache/activemq/transport/http/HttpTransportSupport.java
--- old/src/activemq-optional/src/main/java/org/apache/activemq/transport/http/HttpTransportSupport.java	2008-05-01 20:54:05.000000000 +0200
+++ new/src/activemq-optional/src/main/java/org/apache/activemq/transport/http/HttpTransportSupport.java	2008-05-08 15:06:32.000000000 +0200
@@ -31,6 +31,8 @@
     private URI remoteUrl;
     private String proxyHost;
     private int proxyPort = 8080;
+    private String proxyUser;
+    private String proxyPassword;
 
     public HttpTransportSupport(TextWireFormat textWireFormat, URI remoteUrl) {
         this.textWireFormat = textWireFormat;
@@ -74,4 +76,20 @@
     public void setProxyPort(int proxyPort) {
         this.proxyPort = proxyPort;
     }
+
+    public String getProxyUser() {
+	return proxyUser;
+    }
+
+    public void setProxyUser(String proxyUser) {
+	this.proxyUser = proxyUser;
+    }
+
+    public String getProxyPassword() {
+	return proxyPassword;
+    }
+
+    public void setProxyPassword(String proxyPassword) {
+	this.proxyPassword = proxyPassword;
+    }
 }
diff -Naur old/src/pom.xml new/src/pom.xml
--- old/src/pom.xml	2008-05-01 20:54:04.000000000 +0200
+++ new/src/pom.xml	2008-05-08 15:08:00.000000000 +0200
@@ -52,7 +52,7 @@
     <commons-collections-version>3.1</commons-collections-version>
     <openjpa-version>1.0.0</openjpa-version>
     <commons-dbcp-version>1.2.1</commons-dbcp-version>
-    <commons-httpclient-version>2.0.1</commons-httpclient-version>
+    <commons-httpclient-version>3.1</commons-httpclient-version>
     <commons-logging-version>1.1</commons-logging-version>
     <commons-pool-version>1.4</commons-pool-version>
     <commons-primitives-version>1.0</commons-primitives-version>
