diff -r a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/ResolverUtil.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/ResolverUtil.java
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/ResolverUtil.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/ResolverUtil.java
@@ -237,13 +237,19 @@ public class ResolverUtil {
         while (urls.hasMoreElements()) {
             try {
                 final URL url = urls.nextElement();
-                String urlPath = url.getFile();
-                urlPath = URLDecoder.decode(urlPath, Charsets.UTF_8.name());
-
+                String urlPath = url.toExternalForm();
+                
+                if (urlPath.startsWith("jar:")) {
+                	urlPath = urlPath.substring(4);
+                }
                 // If it's a file in a directory, trim the stupid file: spec
                 if (urlPath.startsWith("file:")) {
                     urlPath = urlPath.substring(5);
                 }
+                else
+                {
+                	urlPath = URLDecoder.decode(urlPath, Charsets.UTF_8.name());
+                }
 
                 // Else it's in a JAR, grab the path to the jar
                 if (urlPath.indexOf('!') > 0) {
