Index: ClassLoaderProxy.java
===================================================================
--- ClassLoaderProxy.java	(revision 1538756)
+++ ClassLoaderProxy.java	(working copy)
@@ -112,6 +112,7 @@
             // Receive the response
             if (input.readBoolean()) {
                 byte[] data = readStream();
+				definePackage(name);
                 return defineClass(name, data, 0, data.length);
             } else {
                 throw new ClassNotFoundException("Unable to find class " + name);
@@ -120,6 +121,16 @@
             throw new ClassNotFoundException("Unable to load class " + name, e);
         }
     }
+	
+	private void definePackage(String name) {
+		int packageEnd = name.lastIndexOf('.');
+		if (packageEnd > 0) {
+			String packageName = name.substring(0, packageEnd);
+			if (getPackage(packageName) == null) {
+				definePackage(packageName, null, null, null, null, null, null, null);
+			}
+		}
+	}
 
     private byte[] readStream() throws IOException {
         ByteArrayOutputStream stream = new ByteArrayOutputStream();
