diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient45/META-INF/MANIFEST.MF b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient45/META-INF/MANIFEST.MF
index dcc54bd..43a28cd 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient45/META-INF/MANIFEST.MF
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient45/META-INF/MANIFEST.MF
@@ -4,7 +4,7 @@
 Bundle-Vendor: %plugin.provider
 Bundle-SymbolicName: org.eclipse.ecf.provider.filetransfer.httpclient45;singleton:=true
 Automatic-Module-Name: org.eclipse.ecf.provider.filetransfer.httpclient45
-Bundle-Version: 1.0.500.qualifier
+Bundle-Version: 1.0.600.qualifier
 Bundle-Localization: plugin
 Bundle-Activator: org.eclipse.ecf.internal.provider.filetransfer.httpclient45.Activator
 Bundle-ClassPath: .
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient45/pom.xml b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient45/pom.xml
index 0667bfb..e249159 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient45/pom.xml
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient45/pom.xml
@@ -9,7 +9,7 @@
     <relativePath>../../../</relativePath>
   </parent>
   <artifactId>org.eclipse.ecf.provider.filetransfer.httpclient45</artifactId>
-  <version>1.0.500-SNAPSHOT</version>
+  <version>1.0.600-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
      <build>
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient45/src/org/eclipse/ecf/provider/filetransfer/httpclient45/HttpClientRetrieveFileTransfer.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient45/src/org/eclipse/ecf/provider/filetransfer/httpclient45/HttpClientRetrieveFileTransfer.java
index ec02d43..16539fe 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient45/src/org/eclipse/ecf/provider/filetransfer/httpclient45/HttpClientRetrieveFileTransfer.java
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient45/src/org/eclipse/ecf/provider/filetransfer/httpclient45/HttpClientRetrieveFileTransfer.java
@@ -193,7 +193,7 @@
 			try {
 				httpResponse.close();
 			} catch (final IOException e) {
-				Activator.getDefault().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, IStatus.ERROR, "hardClose", e)); //$NON-NLS-1$
+				Activator.getDefault().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, IStatus.ERROR, String.format("hardClose url=%s", remoteFileURL), e)); //$NON-NLS-1$
 			}
 		}
 
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient5/META-INF/MANIFEST.MF b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient5/META-INF/MANIFEST.MF
index 8bb678c..a609cd3 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient5/META-INF/MANIFEST.MF
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient5/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %plugin.name
 Bundle-SymbolicName: org.eclipse.ecf.provider.filetransfer.httpclient5;singleton:=true
-Bundle-Version: 1.0.200.qualifier
+Bundle-Version: 1.0.300.qualifier
 Bundle-Vendor: %plugin.vendor
 Bundle-Localization: plugin
 Automatic-Module-Name: org.eclipse.ecf.provider.filetransfer.httpclient5
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient5/pom.xml b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient5/pom.xml
index ce75535..154da98 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient5/pom.xml
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient5/pom.xml
@@ -9,7 +9,7 @@
     <relativePath>../../../</relativePath>
   </parent>
   <artifactId>org.eclipse.ecf.provider.filetransfer.httpclient5</artifactId>
-  <version>1.0.200-SNAPSHOT</version>
+  <version>1.0.300-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
      <build>
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient5/src/org/eclipse/ecf/provider/filetransfer/httpclient5/HttpClientRetrieveFileTransfer.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient5/src/org/eclipse/ecf/provider/filetransfer/httpclient5/HttpClientRetrieveFileTransfer.java
index 0e5d707..3693a66 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient5/src/org/eclipse/ecf/provider/filetransfer/httpclient5/HttpClientRetrieveFileTransfer.java
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient5/src/org/eclipse/ecf/provider/filetransfer/httpclient5/HttpClientRetrieveFileTransfer.java
@@ -197,7 +197,7 @@
 			try {
 				httpResponse.close();
 			} catch (final IOException e) {
-				Activator.getDefault().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, IStatus.ERROR, "hardClose", e)); //$NON-NLS-1$
+				Activator.getDefault().log(new Status(IStatus.WARNING, Activator.PLUGIN_ID, IStatus.WARNING, String.format("hardClose httpResponse.close() exception. url=%s", remoteFileURL), e)); //$NON-NLS-1$
 			}
 		}
 
@@ -206,7 +206,7 @@
 			if (localFileContents != null && closeOutputStream)
 				localFileContents.close();
 		} catch (final IOException e) {
-			Activator.getDefault().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, IStatus.ERROR, "hardClose", e)); //$NON-NLS-1$
+			Activator.getDefault().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, IStatus.ERROR, String.format("hardClose localFileContents.close() exception. url=%s",remoteFileURL), e)); //$NON-NLS-1$
 		}
 		// clear input and output streams
 		remoteFileContents = null;
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer/META-INF/MANIFEST.MF b/providers/bundles/org.eclipse.ecf.provider.filetransfer/META-INF/MANIFEST.MF
index 3ea041e..194e0e7 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer/META-INF/MANIFEST.MF
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: %plugin.name
 Bundle-SymbolicName: org.eclipse.ecf.provider.filetransfer;singleton:=true
 Automatic-Module-Name: org.eclipse.ecf.provider.filetransfer
-Bundle-Version: 3.2.700.qualifier
+Bundle-Version: 3.2.800.qualifier
 Bundle-Activator: org.eclipse.ecf.internal.provider.filetransfer.Activator
 Bundle-Vendor: %plugin.provider
 Bundle-Localization: plugin
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer/pom.xml b/providers/bundles/org.eclipse.ecf.provider.filetransfer/pom.xml
index 92eacd1..c97b642 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer/pom.xml
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer/pom.xml
@@ -10,6 +10,6 @@
   </parent>
   <groupId>org.eclipse.ecf</groupId>
   <artifactId>org.eclipse.ecf.provider.filetransfer</artifactId>
-  <version>3.2.700-SNAPSHOT</version>
+  <version>3.2.800-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer/src/org/eclipse/ecf/provider/filetransfer/outgoing/AbstractOutgoingFileTransfer.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer/src/org/eclipse/ecf/provider/filetransfer/outgoing/AbstractOutgoingFileTransfer.java
index 7652f7d..79d57e9 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer/src/org/eclipse/ecf/provider/filetransfer/outgoing/AbstractOutgoingFileTransfer.java
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer/src/org/eclipse/ecf/provider/filetransfer/outgoing/AbstractOutgoingFileTransfer.java
@@ -159,13 +159,13 @@
 			if (remoteFileContents != null)
 				remoteFileContents.close();
 		} catch (final IOException e) {
-			Activator.getDefault().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, IStatus.ERROR, "hardClose", e)); //$NON-NLS-1$
+			Activator.getDefault().log(new Status(IStatus.WARNING, Activator.PLUGIN_ID, IStatus.WARNING, String.format("hardClose url=%s", remoteFileURL), e)); //$NON-NLS-1$
 		}
 		try {
 			if (localFileContents != null)
 				localFileContents.close();
 		} catch (final IOException e) {
-			Activator.getDefault().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, IStatus.ERROR, "hardClose", e)); //$NON-NLS-1$
+			Activator.getDefault().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, IStatus.ERROR, String.format("hardClose url=%s", remoteFileURL), e)); //$NON-NLS-1$
 		}
 		job = null;
 		remoteFileContents = null;
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer/src/org/eclipse/ecf/provider/filetransfer/retrieve/AbstractRetrieveFileTransfer.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer/src/org/eclipse/ecf/provider/filetransfer/retrieve/AbstractRetrieveFileTransfer.java
index fd34c99..e620f52 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer/src/org/eclipse/ecf/provider/filetransfer/retrieve/AbstractRetrieveFileTransfer.java
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer/src/org/eclipse/ecf/provider/filetransfer/retrieve/AbstractRetrieveFileTransfer.java
@@ -338,13 +338,13 @@
 			if (remoteFileContents != null)
 				remoteFileContents.close();
 		} catch (final IOException e) {
-			Activator.getDefault().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, IStatus.ERROR, "hardClose", e)); //$NON-NLS-1$
+			Activator.getDefault().log(new Status(IStatus.WARNING, Activator.PLUGIN_ID, IStatus.WARNING, String.format("hardClose url=%s", remoteFileURL), e)); //$NON-NLS-1$
 		}
 		try {
 			if (localFileContents != null && closeOutputStream)
 				localFileContents.close();
 		} catch (final IOException e) {
-			Activator.getDefault().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, IStatus.ERROR, "hardClose", e)); //$NON-NLS-1$
+			Activator.getDefault().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, IStatus.ERROR, String.format("hardClose url=%s", remoteFileURL), e)); //$NON-NLS-1$
 		}
 		// leave job intact to ensure only one done event is fired
 		remoteFileContents = null;
diff --git a/releng/features/org.eclipse.ecf.filetransfer.httpclient45.feature/feature.xml b/releng/features/org.eclipse.ecf.filetransfer.httpclient45.feature/feature.xml
index 1a0428e..b2a5b32 100644
--- a/releng/features/org.eclipse.ecf.filetransfer.httpclient45.feature/feature.xml
+++ b/releng/features/org.eclipse.ecf.filetransfer.httpclient45.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ecf.filetransfer.httpclient45.feature"
       label="%featureName"
-      version="1.1.0.qualifier"
+      version="1.1.100.qualifier"
       provider-name="%providerName"
       license-feature="org.eclipse.license"
       license-feature-version="0.0.0">
diff --git a/releng/features/org.eclipse.ecf.filetransfer.httpclient45.feature/pom.xml b/releng/features/org.eclipse.ecf.filetransfer.httpclient45.feature/pom.xml
index ca1da82..5740436 100644
--- a/releng/features/org.eclipse.ecf.filetransfer.httpclient45.feature/pom.xml
+++ b/releng/features/org.eclipse.ecf.filetransfer.httpclient45.feature/pom.xml
@@ -9,6 +9,6 @@
     <relativePath>../../../</relativePath>
   </parent>
   <artifactId>org.eclipse.ecf.filetransfer.httpclient45.feature</artifactId>
-  <version>1.1.0-SNAPSHOT</version>
+  <version>1.1.100-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/releng/features/org.eclipse.ecf.filetransfer.httpclient5.feature/feature.xml b/releng/features/org.eclipse.ecf.filetransfer.httpclient5.feature/feature.xml
index b5e996c..3c912c0 100644
--- a/releng/features/org.eclipse.ecf.filetransfer.httpclient5.feature/feature.xml
+++ b/releng/features/org.eclipse.ecf.filetransfer.httpclient5.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.ecf.filetransfer.httpclient5.feature"
       label="%featureName"
-      version="1.1.500.qualifier"
+      version="1.1.600.qualifier"
       provider-name="%providerName"
       license-feature="org.eclipse.license"
       license-feature-version="0.0.0">
diff --git a/releng/features/org.eclipse.ecf.filetransfer.httpclient5.feature/pom.xml b/releng/features/org.eclipse.ecf.filetransfer.httpclient5.feature/pom.xml
index 80353bf..ae098d4 100644
--- a/releng/features/org.eclipse.ecf.filetransfer.httpclient5.feature/pom.xml
+++ b/releng/features/org.eclipse.ecf.filetransfer.httpclient5.feature/pom.xml
@@ -10,5 +10,5 @@
   </parent>
   <artifactId>org.eclipse.ecf.filetransfer.httpclient5.feature</artifactId>
   <packaging>eclipse-feature</packaging>
-  <version>1.1.500-SNAPSHOT</version>
+  <version>1.1.600-SNAPSHOT</version>
 </project>
diff --git a/tests/bundles/org.eclipse.ecf.tests.filetransfer/src/org/eclipse/ecf/tests/filetransfer/URLRetrieveTest.java b/tests/bundles/org.eclipse.ecf.tests.filetransfer/src/org/eclipse/ecf/tests/filetransfer/URLRetrieveTest.java
index ec3182a..5672bd7 100644
--- a/tests/bundles/org.eclipse.ecf.tests.filetransfer/src/org/eclipse/ecf/tests/filetransfer/URLRetrieveTest.java
+++ b/tests/bundles/org.eclipse.ecf.tests.filetransfer/src/org/eclipse/ecf/tests/filetransfer/URLRetrieveTest.java
@@ -206,17 +206,23 @@
 		testReceive(url);
 	}
 
+	// Invalid test as double-slash is not a legal in the path section of a URI (see RFC2396, sections 3.2, 3.4). 
+	/*
 	public void testReceiveNonCanonicalURLPath() throws Exception {
 		//addProxy("composent.com",3129,"foo\\bar","password");
 		testReceive(HTTP_RETRIEVE_NON_CANONICAL_URL);
 	}
+	*/
 
-	public void testReceiveNonCanonicalURLPathLocalHost() throws Exception {
+	// Invalid test as double-slash is not a legal in the path section of a URI (see RFC2396, sections 3.2, 3.4). 
+	/*
+ 	void testReceiveNonCanonicalURLPathLocalHost() throws Exception {
 		String url = server.getServerURL() + "//foo";
 		assertTrue(url, url.matches("\\Ahttp://localhost:[0-9]+//foo\\Z"));
 		testReceive(url);
 	}
-
+	*/
+	
 	public void testFTPReceiveFile() throws Exception {
 		testReceive(FTP_RETRIEVE);
 	}
