diff --git a/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/EncodingUtil.java b/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/EncodingUtil.java
index 67f5e5f..c0a992c 100644
--- a/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/EncodingUtil.java
+++ b/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/EncodingUtil.java
@@ -92,7 +92,13 @@
     {
         String[] pathSegments = path == null ? new String[0] : path.split( "/" );
 
-        return encodeURLToString( baseUrl, pathSegments );
+        String encodedUrl = encodeURLToString( baseUrl, pathSegments );
+        if ( path != null && path.endsWith( "/" ) )
+        {
+            return encodedUrl + "/";
+        }
+
+        return encodedUrl;
     }
 
     /**
diff --git a/wagon-providers/wagon-http-shared/src/test/java/org/apache/maven/wagon/shared/http/EncodingUtilTest.java b/wagon-providers/wagon-http-shared/src/test/java/org/apache/maven/wagon/shared/http/EncodingUtilTest.java
index 4ec549c..0b73317 100644
--- a/wagon-providers/wagon-http-shared/src/test/java/org/apache/maven/wagon/shared/http/EncodingUtilTest.java
+++ b/wagon-providers/wagon-http-shared/src/test/java/org/apache/maven/wagon/shared/http/EncodingUtilTest.java
@@ -25,8 +25,31 @@
 import java.net.URISyntaxException;
 
 public class EncodingUtilTest
-    extends TestCase
-{
+        extends TestCase {
+    public void testEncodeURLWithTrailingSlash()
+    {
+        String baseUrl = "https://host:1234/test";
+        String path = "demo.zip/";
+        String expectedUrl = String.format( "%s/%s", baseUrl, path );
+
+        String encodedURL = EncodingUtil.encodeURLToString( baseUrl, path );
+
+        assertEquals( expectedUrl, encodedURL );
+    }
+
+    public void testEncodeUrlApisConsistent()
+    {
+        String baseUrl = "https://host:1234/test";
+        String path = "demo.zip/";
+        String fullUrl = String.format( "%s/%s", baseUrl, path );
+
+        String encodedFullURLToString = EncodingUtil.encodeURLToString( fullUrl );
+        String encodedURLToString = EncodingUtil.encodeURLToString( baseUrl, path );
+
+        assertEquals( encodedFullURLToString, fullUrl );
+        assertEquals( encodedFullURLToString, encodedURLToString );
+    }
+
     public void testEncodeURLWithSpaces()
         throws URISyntaxException, MalformedURLException
     {
