Index: trunk/src/lib/com/izforge/izpack/installer/UnpackerBase.java
===================================================================
--- trunk/src/lib/com/izforge/izpack/installer/UnpackerBase.java	(revision 2673)
+++ trunk/src/lib/com/izforge/izpack/installer/UnpackerBase.java	(working copy)
@@ -35,8 +35,7 @@
 import org.apache.regexp.RESyntaxException;
 
 import java.io.*;
-import java.net.MalformedURLException;
-import java.net.URL;
+import java.net.URI;
 import java.util.*;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipInputStream;
@@ -947,26 +946,22 @@
         fout.close();
     }
     
-    protected File getAbsolutInstallSource() throws MalformedURLException
+    protected File getAbsolutInstallSource() throws Exception
     {
         if (absolutInstallSource == null)
         {
-            URL url = getClass().getResource("/info");
-            if (url.getPath().startsWith("file:"))
+            URI uri = getClass().getResource("/info").toURI();
+            String s = uri.getSchemeSpecificPart();
+            if (s.startsWith("file:"))
             {
-                url = new URL(url.getFile());
+                int p = s.indexOf('!');
+                if (p >= 0)
+                {
+                    s = s.substring(0, p);
+                }
+                s = new URI(s).getSchemeSpecificPart();
             }
-            String urlFile = url.getFile();
-            if (url.getAuthority() != null)
-            {
-                // we have a UNC path...
-                urlFile = "//" + url.getAuthority() + urlFile;
-            }
-            absolutInstallSource = new File(urlFile).getAbsoluteFile().getParentFile();
-            if (absolutInstallSource.getAbsolutePath().endsWith("!"))
-            {
-                absolutInstallSource = absolutInstallSource.getParentFile();
-            }
+            absolutInstallSource = new File(s).getAbsoluteFile().getParentFile();
         }
         return absolutInstallSource;
     }

