diff --git a/user/src/com/google/gwt/dom/client/OptionElement.java b/user/src/com/google/gwt/dom/client/OptionElement.java
index dfbabdd..e984107 100644
--- a/user/src/com/google/gwt/dom/client/OptionElement.java
+++ b/user/src/com/google/gwt/dom/client/OptionElement.java
@@ -124,7 +124,7 @@
    * @see <a href="http://www.w3.org/TR/1999/REC-html401-19991224/interact/forms.html#adef-disabled">W3C HTML Specification</a>
    */
   public final native void setDisabled(boolean disabled) /*-{
-    return this.disabled = disabled;
+    this.disabled = disabled;
   }-*/;
 
   /**
@@ -133,7 +133,7 @@
    * @see <a href="http://www.w3.org/TR/1999/REC-html401-19991224/interact/forms.html#adef-label-OPTION">W3C HTML Specification</a>
    */
   public final native void setLabel(String label) /*-{
-    return this.label = label;
+    this.label = label;
   }-*/;
 
   /**
diff --git a/user/src/com/google/gwt/dom/client/Touch.java b/user/src/com/google/gwt/dom/client/Touch.java
index 8faa291..ee19920 100644
--- a/user/src/com/google/gwt/dom/client/Touch.java
+++ b/user/src/com/google/gwt/dom/client/Touch.java
@@ -20,7 +20,7 @@
 /**
  * Class representing touches.
  *
- * @see http://developer.apple.com/library/safari/#documentation/UserExperience/Reference/TouchClassReference/Touch/Touch.html
+ * See {@link <a href="http://developer.apple.com/library/safari/#documentation/UserExperience/Reference/TouchClassReference/Touch/Touch.html">Safari Touch Documentation</a>}
  */
 public class Touch extends JavaScriptObject {
 
diff --git a/user/src/com/google/gwt/event/dom/client/TouchEvent.java b/user/src/com/google/gwt/event/dom/client/TouchEvent.java
index 30cff9b..e59c69d 100644
--- a/user/src/com/google/gwt/event/dom/client/TouchEvent.java
+++ b/user/src/com/google/gwt/event/dom/client/TouchEvent.java
@@ -22,8 +22,7 @@
 /**
  * Abstract class representing touch events.
  *
- * @see http://developer.apple.com/library/safari/documentation/UserExperience/Reference/TouchEventClassReference/TouchEvent/TouchEvent.html
- *
+ * See {@link <a href="http://developer.apple.com/library/safari/documentation/UserExperience/Reference/TouchEventClassReference/TouchEvent/TouchEvent.html">Safari Touch Event Documentation</a>}
  * @param <H> handler type
  */
 public abstract class TouchEvent<H extends EventHandler>
diff --git a/user/src/com/google/gwt/i18n/client/LocalizableResource.java b/user/src/com/google/gwt/i18n/client/LocalizableResource.java
index 04de765..7fbf382 100644
--- a/user/src/com/google/gwt/i18n/client/LocalizableResource.java
+++ b/user/src/com/google/gwt/i18n/client/LocalizableResource.java
@@ -157,7 +157,7 @@
 
   /**
    * The key used for lookup of translated strings.  If not present, the
-   * key will be generated based on the {@code @GenerateKeysUsing} annotation,
+   * key will be generated based on the {@code @GenerateKeys} annotation,
    * or the unqualified method name if it is not present.
    */
   @Retention(RetentionPolicy.RUNTIME)
diff --git a/user/src/com/google/gwt/i18n/client/Messages.java b/user/src/com/google/gwt/i18n/client/Messages.java
index 7ddc537..f7478ca 100644
--- a/user/src/com/google/gwt/i18n/client/Messages.java
+++ b/user/src/com/google/gwt/i18n/client/Messages.java
@@ -29,7 +29,7 @@
  * extends <code>Messages</code> returns an instance of an automatically
  * generated subclass that is implemented using message templates selected based
  * on locale. Message templates are based on a subset of the format used by <a
- * href="http://java.sun.com/j2se/1.5.0/docs/api/java/text/MessageFormat.html">
+ * href="http://download.oracle.com/javase/1.5.0/docs/api/java/text/MessageFormat.html">
  * <code>MessageFormat</code></a>.  Note in particular that single quotes are
  * used to quote other characters, and should be doubled for a literal single
  * quote.
diff --git a/user/src/com/google/gwt/user/client/ui/ImageBundle.java b/user/src/com/google/gwt/user/client/ui/ImageBundle.java
index 163be1d..6ca2c54 100644
--- a/user/src/com/google/gwt/user/client/ui/ImageBundle.java
+++ b/user/src/com/google/gwt/user/client/ui/ImageBundle.java
@@ -43,7 +43,7 @@
  * <code>gif</code>, or <code>jpg</code>. If the image name contains '/'
  * characters, it is assumed to be the name of a resource on the classpath,
  * formatted as would be expected by <code>
- *  <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/ClassLoader.html#getResource(java.lang.String)">ClassLoader.getResource(String)</a>.
+ *  <a href="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/ClassLoader.html#getResource(java.lang.String)">ClassLoader.getResource(String)</a>.
  * </code>
  * Otherwise, the image must be located in the same package as the user-defined
  * image bundle.
diff --git a/user/src/com/google/gwt/user/server/rpc/RPCServletUtils.java b/user/src/com/google/gwt/user/server/rpc/RPCServletUtils.java
index 8e1d36e..05bf40d 100644
--- a/user/src/com/google/gwt/user/server/rpc/RPCServletUtils.java
+++ b/user/src/com/google/gwt/user/server/rpc/RPCServletUtils.java
@@ -146,7 +146,7 @@
    *          should be assumed
    * @return the content of an {@link HttpServletRequest} by decoding it using
    *         <code>expectedCharSet</code>, or <code>UTF-8</code> if
-   *         <code>expectedCharSet</code> is <code>null</null>
+   *         <code>expectedCharSet</code> is <code>null</code>
    * @throws IOException if the request's input stream cannot be accessed, read
    *         from or closed
    * @throws ServletException if the request's content type does not
