I have 2 Java JVM's that are sending/receiving Java objects this means I need the Jar on my machines on JVM #1 I have public class Daily implements Serializable { private static final long serialVersionUID = 1L; <3 other fields> on JVM #2 I have public class Daily implements Serializable { private static final long serialVersionUID = 1L; <3 other fields> Notice both machine have the same version (the same class definition) --------------------------------------- 6 month later, I need to change the class and add a new field on JVM #1 I have public class Daily implements Serializable { private static final long serialVersionUID = 2L; <- I should change this <4 other fields> <- add a field on JVM #2 I have public class Daily implements Serializable { private static final long serialVersionUID = 1L; <3 other fields> Now when JVM #2 gets a serialized object of this class I will get a VersionMismatchException and I will NOT get stange results due to added/removed fields