The version object is of type Splittable and since none of the implementing classes overrides Object.equals() your comparison with the previousVersion object will always be false.
Here is the patch: Index: user/src/com/google/web/bindery/requestfactory/server/SimpleRequestProcessor.java =================================================================== --- user/src/com/google/web/bindery/requestfactory/server/SimpleRequestProcessor.java (revision 11153) +++ user/src/com/google/web/bindery/requestfactory/server/SimpleRequestProcessor.java (working copy) @@ -310,8 +310,8 @@ */ if (WriteOperation.UPDATE.equals(writeOperation) && !inResponse) { String previousVersion = bean.<String> getTag(Constants.VERSION_PROPERTY_B64); - if (version != null && previousVersion != null - && version.equals(fromBase64(previousVersion))) { + if (version != null && previousVersion != null && version.asString() != null + && version.asString().equals(fromBase64(previousVersion))) { continue; } } -- http://groups.google.com/group/Google-Web-Toolkit-Contributors