diff --git a/dev/core/src/com/google/gwt/core/ext/typeinfo/BadTypeArgsException.java b/dev/core/src/com/google/gwt/core/ext/typeinfo/BadTypeArgsException.java
index ef1e167..bed7c79 100644
--- a/dev/core/src/com/google/gwt/core/ext/typeinfo/BadTypeArgsException.java
+++ b/dev/core/src/com/google/gwt/core/ext/typeinfo/BadTypeArgsException.java
@@ -16,8 +16,8 @@
 package com.google.gwt.core.ext.typeinfo;
 
 /**
- * Thrown when TypeOracle finds an invalid typed argument passed to the
- * gwtTypeArgs property.
+ * Thrown when an invalid type is specified as part of a
+ * <code>gwt.typeArgs</code> tag within a doc comment.
  */
 public class BadTypeArgsException extends TypeOracleException {
 
diff --git a/dev/core/src/com/google/gwt/core/ext/typeinfo/JArrayType.java b/dev/core/src/com/google/gwt/core/ext/typeinfo/JArrayType.java
index 9cc1b14..4493d74 100644
--- a/dev/core/src/com/google/gwt/core/ext/typeinfo/JArrayType.java
+++ b/dev/core/src/com/google/gwt/core/ext/typeinfo/JArrayType.java
@@ -16,7 +16,7 @@
 package com.google.gwt.core.ext.typeinfo;
 
 /**
- * Type representing a java array.
+ * Type representing a Java array.
  */
 public class JArrayType extends JType {
 
diff --git a/dev/core/src/com/google/gwt/core/ext/typeinfo/JClassType.java b/dev/core/src/com/google/gwt/core/ext/typeinfo/JClassType.java
index d42b4cf..3c0b85b 100644
--- a/dev/core/src/com/google/gwt/core/ext/typeinfo/JClassType.java
+++ b/dev/core/src/com/google/gwt/core/ext/typeinfo/JClassType.java
@@ -30,7 +30,7 @@
 import java.util.Set;
 
 /**
- * Type representing a java class type.
+ * Type representing a Java class or interface type.
  */
 public class JClassType extends JType implements HasMetaData {
   private static final char[] HEX_CHARS = new char[] {
diff --git a/user/super/com/google/gwt/emul/java/lang/Error.java b/user/super/com/google/gwt/emul/java/lang/Error.java
index 0b964e8..06d9c7c 100644
--- a/user/super/com/google/gwt/emul/java/lang/Error.java
+++ b/user/super/com/google/gwt/emul/java/lang/Error.java
@@ -18,7 +18,7 @@
 /**
  * See <a
  * href="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Error.html">the
- * official Java API documentation</a> for details.
+ * official Java API doc</a> for details.
  */
 public class Error extends Throwable {
 
diff --git a/user/super/com/google/gwt/emul/java/lang/StringIndexOutOfBoundsException.java b/user/super/com/google/gwt/emul/java/lang/StringIndexOutOfBoundsException.java
index 7cf8106..7dc89f1 100644
--- a/user/super/com/google/gwt/emul/java/lang/StringIndexOutOfBoundsException.java
+++ b/user/super/com/google/gwt/emul/java/lang/StringIndexOutOfBoundsException.java
@@ -17,7 +17,7 @@
 
 /**
  * See <a
- * href="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IndexOfBoundsException.html">the
+ * href="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/StringIndexOfBoundsException.html">the
  * official Java API doc</a> for details.
  */
 public class StringIndexOutOfBoundsException extends IndexOutOfBoundsException {
diff --git a/user/test/com/google/gwt/i18n/client/gen/TestBadKeys.java b/user/test/com/google/gwt/i18n/client/gen/TestBadKeys.java
index 551aec4..2c6d524 100644
--- a/user/test/com/google/gwt/i18n/client/gen/TestBadKeys.java
+++ b/user/test/com/google/gwt/i18n/client/gen/TestBadKeys.java
@@ -1,12 +1,12 @@
 package com.google.gwt.i18n.client.gen;
 
-
 /**
- * Interface to represent the constants contained in resource  bundle:
- * 	'C:/src-gwt/gwt-user/src/test/resources/com/google/gwt/i18n/client/gen/TestBadKeys.properties'.
+ * Interface to represent the constants contained in resource bundle:
+ * 'C:/src-gwt/gwt-user/src/test/resources/com/google/gwt/i18n/client/gen/TestBadKeys.properties'.
  */
-public interface TestBadKeys extends com.google.gwt.i18n.client.ConstantsWithLookup {
-  
+public interface TestBadKeys extends
+    com.google.gwt.i18n.client.ConstantsWithLookup {
+
   /**
    * Translated "zh_spacer".
    * 
@@ -48,9 +48,11 @@
   String __s();
 
   /**
-   * Translated "________________________________________________________________".
+   * Translated
+   * "________________________________________________________________".
    * 
-   * @return translated "________________________________________________________________"
+   * @return translated
+   *         "________________________________________________________________"
    * @gwt.key ----------------------------------------------------------------
    */
   String ________________________________________________________________();
