LGTM, with a few nits. Also, I didn't understand why you changed a bunch of things in SwingUI to run on the UI thread. What was the specific reason for this?
http://gwt-code-reviews.appspot.com/111809/diff/1/6 File dev/core/src/com/google/gwt/dev/SwingUI.java (right): http://gwt-code-reviews.appspot.com/111809/diff/1/6#newcode178 Line 178: ModuleHandle handle = invokeAndGet(new Callable<ModuleHandle>() { Why do you want to do this work on the UI thread? http://gwt-code-reviews.appspot.com/111809/diff/1/3 File dev/core/src/com/google/gwt/dev/shell/ShellMainWindow.java (right): http://gwt-code-reviews.appspot.com/111809/diff/1/3#newcode254 Line 254: if (launcher == null || selectedUrl == null) { Change this to an assert perhaps? http://gwt-code-reviews.appspot.com/111809/diff/1/2 File dev/core/src/com/google/gwt/dev/shell/jetty/JettyLauncher.java (right): http://gwt-code-reviews.appspot.com/111809/diff/1/2#newcode84 Line 84: logStatus = TreeLogger.TRACE; Thanks for taking care of this. To be clear, this means that we don't want to have the 404 for favicon show up in the Swing UI either, right? http://gwt-code-reviews.appspot.com/111809/diff/1/7 File dev/core/src/com/google/gwt/dev/ui/DevModeUI.java (right): http://gwt-code-reviews.appspot.com/111809/diff/1/7#newcode126 Line 126: * Indicates that module load is complete, and that URLs previously specified Naming suggestion - this really means that the modules have been processed, right? Might want to clarify this in the doc, though the method name can remain the same. http://gwt-code-reviews.appspot.com/111809 -- http://groups.google.com/group/Google-Web-Toolkit-Contributors