I have a remote method that takes an interface class as an argument. Clients have classes that implement this interface along with serializable. The client has its codebase set to a http://hostname ort/ This works fine, but problems ensue when a client calls this method, exits the application, and then modifies the class file by changing the source code and recompiling. Since the RMIClassLoader keeps track of classes loaded based on the calling process's codebase, it won't reload the class file because a class with that name has already been loaded for that codebase. I've read that the RMIClassLoader can't be cleared, so I'm hoping to find some way to recreate it each time a new client checks in (there is a check-in method that does some setup that all clients call when they start up).