Index: src/main/java/java/io/ObjectInputStream.java =================================================================== --- src/main/java/java/io/ObjectInputStream.java (revision 491025) +++ src/main/java/java/io/ObjectInputStream.java (working copy) @@ -1305,9 +1305,22 @@ private int findStreamSuperclass(Class cl, ArrayList classList, int lastIndex) { + ObjectStreamClass objCl; + String forName; + for (int i = lastIndex; i < classList.size(); i++) { - if (cl.getName().equals(classList.get(i).getName())) { - return i; + objCl = classList.get(i); + forName = objCl.forClass().getName(); + + if (objCl.getName().equals(forName)) { + if (cl.getName().equals(objCl.getName())) { + return i; + } + } else { + // there was a class replacement + if (cl.getName().equals(forName)) { + return i; + } } } return -1;