--- a/asdf.lisp	2010-05-01 15:56:06.000000000 +0200
+++ b/asdf.lisp	2010-05-01 19:39:50.000000000 +0200
@@ -2607,7 +2516,7 @@
     #+ecl (,(translate-logical-pathname "SYS:**;*.*") ()) ; only needed if LPNs are resolved manually.
     #+clozure (,(wilden (ccl::ccl-directory)) ()) ; not needed: no precompiled ASDF system
     #+abcl (#p"jar:file:/**/*.jar!/**/*.*" (:function translate-jar-pathname))
-    #+abcl (#p"/:jar:file/**/*.*" (:user-cache #p"**/*.*"))
+    #+abcl (#p"/___jar___file___root___/**/*.*" (:user-cache #p"**/*.*"))
     ;; All-import, here is where we want user stuff to be:
     :inherit-configuration
     ;; If we want to enable the user cache by default, here would be the place:
@@ -2797,14 +2706,20 @@
 #+abcl
 (defun translate-jar-pathname (source wildcard)
   (declare (ignore wildcard))
-  (let ((root (apply-output-translations
-               (concatenate 'string
-                            "/:jar:file/"
-                            (namestring (first (pathname-device
-                                                source))))))
-        (entry (make-pathname :directory (pathname-directory source)
-                              :name (pathname-name source)
-                              :type (pathname-type source))))
+  (let* ((p (first (pathname-device source)))
+	 (r (concatenate 'string  
+			 (if (and (find :windows *features*) 
+				  (not (null (pathname-device p))))
+			     (format nil "~A/" (pathname-device p))
+			     "")
+			 (namestring (make-pathname :directory (pathname-directory p)
+						    :name (pathname-name p)
+						    :type (pathname-type p)))))
+	 (root (apply-output-translations
+		(format nil "/___jar___file___root___/~A" r)))
+	 (entry (make-pathname :directory (pathname-directory source)
+			       :name (pathname-name source)
+			       :type (pathname-type source))))
     (concatenate 'string (namestring root) (namestring entry))))
 
 ;;;; -----------------------------------------------------------------
