Index: java/lang/ClassLoader.java
===================================================================
RCS file: /cvsroot/classpath/classpath/java/lang/ClassLoader.java,v
retrieving revision 1.23
diff -u -r1.23 ClassLoader.java
--- java/lang/ClassLoader.java	17 Jan 2003 19:14:07 -0000	1.23
+++ java/lang/ClassLoader.java	3 Mar 2003 16:22:40 -0000
@@ -278,21 +278,28 @@
       if (c != null)
         return c;
 
-      // Can the class been loaded by a parent?
+      // Can the class be loaded by a parent?
       try
+      {
+        if (parent == null)
         {
-          if (parent == null)
-            return VMClassLoader.loadClass(name, resolve);
-          return parent.loadClass(name, resolve);
+          c = VMClassLoader.loadClass(name, resolve);
+          if (c != null)
+            return c;
         }
-      catch (ClassNotFoundException e)
+        else
         {
-          // Still not found, we have to do it ourself.
-          c = findClass(name);
-          if (resolve)
-            resolveClass(c);
-          return c;
+          return parent.loadClass(name, resolve);
         }
+      }
+      catch (ClassNotFoundException e)
+      {
+      }
+      // Still not found, we have to do it ourself.
+      c = findClass(name);
+      if (resolve)
+        resolveClass(c);
+      return c;
     }
 
   /**
Index: vm/reference/java/lang/Class.java
===================================================================
RCS file: /cvsroot/classpath/classpath/vm/reference/java/lang/Class.java,v
retrieving revision 1.23
diff -u -r1.23 Class.java
--- vm/reference/java/lang/Class.java	26 Oct 2002 18:41:59 -0000	1.23
+++ vm/reference/java/lang/Class.java	3 Mar 2003 16:22:44 -0000
@@ -187,7 +187,10 @@
             if (cl != null)
               sm.checkPermission(new RuntimePermission("getClassLoader"));
           }
-	return VMClassLoader.loadClass(name, initialize);
+	Class c = VMClassLoader.loadClass(name, initialize);
+        if (c != null)
+          return c;
+        throw new ClassNotFoundException(name);
       }
     return classloader.loadClass(name, initialize);
   }
Index: vm/reference/java/lang/VMClassLoader.java
===================================================================
RCS file: /cvsroot/classpath/classpath/vm/reference/java/lang/VMClassLoader.java,v
retrieving revision 1.14
diff -u -r1.14 VMClassLoader.java
--- vm/reference/java/lang/VMClassLoader.java	18 Dec 2002 10:28:29 -0000	1.14
+++ vm/reference/java/lang/VMClassLoader.java	3 Mar 2003 16:22:44 -0000
@@ -117,12 +117,12 @@
    *
    * @param name the class name to load
    * @param resolve whether to resolve it
-   * @return the class, loaded by the bootstrap classloader
+   * @return the class, loaded by the bootstrap classloader or null
+   * if the class wasn't found
    */
   static final Class loadClass(String name, boolean resolve)
-    throws ClassNotFoundException
   {
-    throw new ClassNotFoundException(name);
+    return null;
   }
 
   /**
