diff --git a/mcf/src/java/org/apache/solr/mcf/ManifoldCFQParserPlugin.java b/mcf/src/java/org/apache/solr/mcf/ManifoldCFQParserPlugin.java
index fc4dd86..32a6998 100644
--- a/mcf/src/java/org/apache/solr/mcf/ManifoldCFQParserPlugin.java
+++ b/mcf/src/java/org/apache/solr/mcf/ManifoldCFQParserPlugin.java
@@ -49,7 +49,7 @@
 import org.apache.http.util.EntityUtils;
 import org.apache.http.impl.client.DefaultHttpClient;
 import org.apache.http.impl.client.DefaultRedirectStrategy;
-import org.apache.http.impl.conn.PoolingClientConnectionManager;
+import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
 import org.slf4j.*;
 
 import java.io.*;
@@ -88,7 +88,7 @@
   int connectionTimeOut;
   int socketTimeOut;
   Integer connectionManagerSynchronizer = new Integer(0);
-  PoolingClientConnectionManager httpConnectionManager = null;
+  ThreadSafeClientConnManager httpConnectionManager = null;
   DefaultHttpClient client = null;
   int poolSize;
   
@@ -128,7 +128,7 @@
       if (client == null)
       {
         // Initialize the connection pool
-        httpConnectionManager = new PoolingClientConnectionManager();
+        httpConnectionManager = new ThreadSafeClientConnManager();
         httpConnectionManager.setMaxTotal(poolSize);
         httpConnectionManager.setDefaultMaxPerRoute(poolSize);
         BasicHttpParams params = new BasicHttpParams();
diff --git a/mcf/src/java/org/apache/solr/mcf/ManifoldCFSearchComponent.java b/mcf/src/java/org/apache/solr/mcf/ManifoldCFSearchComponent.java
index 5565393..2b119a0 100644
--- a/mcf/src/java/org/apache/solr/mcf/ManifoldCFSearchComponent.java
+++ b/mcf/src/java/org/apache/solr/mcf/ManifoldCFSearchComponent.java
@@ -41,7 +41,7 @@
 import org.apache.http.util.EntityUtils;
 import org.apache.http.impl.client.DefaultHttpClient;
 import org.apache.http.impl.client.DefaultRedirectStrategy;
-import org.apache.http.impl.conn.PoolingClientConnectionManager;
+import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
 import org.slf4j.*;
 
 import java.io.*;
@@ -80,7 +80,7 @@
   String fieldDenyShare = null;
   int connectionTimeOut;
   int socketTimeOut;
-  PoolingClientConnectionManager httpConnectionManager = null;
+  ThreadSafeClientConnManager httpConnectionManager = null;
   DefaultHttpClient client = null;
   int poolSize;
   
@@ -117,7 +117,7 @@
     poolSize = (connectionPoolSize==null)?50:connectionPoolSize.intValue();
 
     // Initialize the connection pool
-    httpConnectionManager = new PoolingClientConnectionManager();
+    httpConnectionManager = new ThreadSafeClientConnManager();
     httpConnectionManager.setMaxTotal(poolSize);
     httpConnectionManager.setDefaultMaxPerRoute(poolSize);
     BasicHttpParams params = new BasicHttpParams();
