diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index a6807eccbcf14398948d4099c37314b6983a60f5..291f8d4a05ce2e4ca2a3889a1713762ba0b738cb 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,8 @@
+2004-09-24  Casey Marshall <csm@gnu.org>
+
+	* java/io/ObjectInputStream.java (callReadMethod): re-throw
+	`ClassNotFoundException'.
+
 2004-09-24  Jeroen Frijters  <jeroen@frijters.net>
 
 	* java/io/ObjectInputStream.java (readObject): Delegate instantation
diff --git a/libjava/java/io/ObjectInputStream.java b/libjava/java/io/ObjectInputStream.java
index b9bba27b09bd6b07fcadfe7b0adfdf551c6a9968..5335dfa58514fcee23e4c84e2e826e556a1e2651 100644
--- a/libjava/java/io/ObjectInputStream.java
+++ b/libjava/java/io/ObjectInputStream.java
@@ -1813,7 +1813,8 @@ public class ObjectInputStream extends InputStream
   
   private native ClassLoader getCallersClassLoader();
 
-  private void callReadMethod (Method readObject, Class klass, Object obj) throws IOException
+  private void callReadMethod (Method readObject, Class klass, Object obj)
+    throws ClassNotFoundException, IOException
   {
     try
       {
@@ -1827,6 +1828,8 @@ public class ObjectInputStream extends InputStream
 	  throw (RuntimeException) exception;
 	if (exception instanceof IOException)
 	  throw (IOException) exception;
+        if (exception instanceof ClassNotFoundException)
+          throw (ClassNotFoundException) exception;
 
 	throw new IOException("Exception thrown from readObject() on " +
 			       klass + ": " + exception.getClass().getName());