diff --git a/blobstore/src/test/java/org/jclouds/blobstore/integration/config/StubBlobStoreModule.java b/blobstore/src/test/java/org/jclouds/blobstore/integration/config/StubBlobStoreModule.java
index 85bc1af..cc7f132 100644
--- a/blobstore/src/test/java/org/jclouds/blobstore/integration/config/StubBlobStoreModule.java
+++ b/blobstore/src/test/java/org/jclouds/blobstore/integration/config/StubBlobStoreModule.java
@@ -40,7 +40,7 @@
       bind(new TypeLiteral<ConcurrentMap<String, ConcurrentMap<String, Blob>>>() {
       }).toInstance(map);
       bind(StubAsyncBlobStore.class).in(Scopes.SINGLETON);
-      bindConstant().annotatedWith(Jsr330.named(Constants.PROPERTY_USER_THREADS)).to(5);
-      bindConstant().annotatedWith(Jsr330.named(Constants.PROPERTY_IO_WORKER_THREADS)).to(5);
+      bindConstant().annotatedWith(Jsr330.named(Constants.PROPERTY_USER_THREADS)).to(0);
+      bindConstant().annotatedWith(Jsr330.named(Constants.PROPERTY_IO_WORKER_THREADS)).to(0);
    }
 }
\ No newline at end of file
diff --git a/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseBlobStoreIntegrationTest.java b/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseBlobStoreIntegrationTest.java
index fc45b39..1157ef2 100644
--- a/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseBlobStoreIntegrationTest.java
+++ b/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseBlobStoreIntegrationTest.java
@@ -86,6 +86,7 @@
     */
    @BeforeSuite
    public void setUpResourcesForAllThreads(ITestContext testContext) throws Exception {
+      // TODO: close this context
       createContainersSharedByAllThreads(getCloudResources(testContext), testContext);
    }
 
