Index: jython/src/org/python/core/PySystemState.java
===================================================================
--- jython.orig/src/org/python/core/PySystemState.java
+++ jython/src/org/python/core/PySystemState.java
@@ -963,7 +963,7 @@ public class PySystemState extends PyObj
         }
         cachedir = new File(props.getProperty(PYTHON_CACHEDIR, CACHEDIR_DEFAULT_NAME));
         if (!cachedir.isAbsolute()) {
-            cachedir = new File(prefix == null ? null : prefix.toString(), cachedir.getPath());
+            cachedir = new File(System.getProperty("user.home") == null ? null : System.getProperty("user.home"), cachedir.getPath());
         }
     }
 
Index: jython/registry
===================================================================
--- jython.orig/registry
+++ jython/registry
@@ -12,9 +12,8 @@
 # Set the directory to use for caches (currently just package information)
 # This directory should be writable by the user
 # If this is an absolute path it is used as given
-# Otherwise it is interpreted relative to sys.prefix
-# (typically the directory of this file)
-python.cachedir = cachedir
+# Otherwise it is interpreted relative to $HOME
+python.cachedir = .jython-cache
 
 # Setting this property to true disables the package scan for the cachedir.
 # Please be aware that disabling this will break importing * from java packages
