diff --git a/org.eclipse.userstorage.oauth.tests/META-INF/MANIFEST.MF b/org.eclipse.userstorage.oauth.tests/META-INF/MANIFEST.MF
index 6ea59d5..e05dd70 100644
--- a/org.eclipse.userstorage.oauth.tests/META-INF/MANIFEST.MF
+++ b/org.eclipse.userstorage.oauth.tests/META-INF/MANIFEST.MF
@@ -9,4 +9,4 @@
 Require-Bundle: org.junit;bundle-version="4.12.0",
  org.mockito,
  org.apache.httpcomponents.httpclient;bundle-version="[4.0.0,5.0.0)";visibility:=reexport,
- org.apache.httpcomponents.httpcore;bundle-version="[4.0.0,5.0.0)";visibility:=reexport 
+ org.apache.httpcomponents.httpcore;bundle-version="[4.0.0,5.0.0)";visibility:=reexport
diff --git a/org.eclipse.userstorage/src/org/eclipse/userstorage/internal/Session.java b/org.eclipse.userstorage/src/org/eclipse/userstorage/internal/Session.java
index c9f7cd4..5b4085e 100644
--- a/org.eclipse.userstorage/src/org/eclipse/userstorage/internal/Session.java
+++ b/org.eclipse.userstorage/src/org/eclipse/userstorage/internal/Session.java
@@ -33,6 +33,8 @@
 import org.apache.http.client.fluent.Executor;
 import org.apache.http.client.fluent.Request;
 import org.apache.http.client.fluent.Response;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -68,6 +70,8 @@
    */
   private final CookieStore cookieStore;
 
+  private final CloseableHttpClient httpClient;
+
   private final Executor executor;
 
   protected final ICredentialsProvider credentialsProvider;
@@ -79,7 +83,8 @@
     this.service = service;
     this.credentialsProvider = credentialsProvider;
     cookieStore = new org.apache.http.impl.client.BasicCookieStore();
-    executor = Executor.newInstance().cookieStore(cookieStore);
+    httpClient = HttpClients.createDefault();
+    executor = Executor.newInstance(httpClient).cookieStore(cookieStore);
   }
 
   public IStorageService getService()
@@ -644,6 +649,17 @@
   public void close()
   {
     reset();
+    try
+    {
+      // During tests with Apache HttpClient 4.5, connections are pooled across tests
+      // even if the USSServer was disposed. Explicitly close the httpClient to ensure
+      // connections are properly closed.
+      httpClient.close();
+    }
+    catch (IOException ex)
+    {
+      // IGNORE
+    }
   }
 }
 
