Hi, we have run into something similar and it has to do with the 'magic' numbers that are exchanged when an ObjectOutputStream hooks itself to an ObjectInputStream. Much to our surprise the constructor for this class actually does I/O operations with its counterpart across the connection (yes, I know it does say that in the documentation, I checked, afterward). What it does during this communication is to exchange the magic numbers between the classes and stuff.
To make it work we had to take the class files for the serialized objects that were compiled on one machine and move them over to the other machine. At this point, the magic numbers started to work, and we could send and receive objects. However, if the second machine recompiled the java files into classes again, everything would stop working. So, the class files must be the same on both machines before this will work! And we think the java versions for the VM and class libaries must match as well, otherwise, no luck!
Hope this helps, Neil