diff --git a/dev/core/src/com/google/gwt/core/ext/linker/CompilationResult.java b/dev/core/src/com/google/gwt/core/ext/linker/CompilationResult.java
index ee24177..301c1ef 100644
--- a/dev/core/src/com/google/gwt/core/ext/linker/CompilationResult.java
+++ b/dev/core/src/com/google/gwt/core/ext/linker/CompilationResult.java
@@ -42,7 +42,7 @@
   public abstract String[] getJavaScript();
 
   /**
-   * Returns the permutation ID
+   * Returns the permutation ID.
    */
   public abstract int getPermutationId();
   
diff --git a/user/src/com/google/gwt/dom/client/Document.java b/user/src/com/google/gwt/dom/client/Document.java
index e093442..b962621 100644
--- a/user/src/com/google/gwt/dom/client/Document.java
+++ b/user/src/com/google/gwt/dom/client/Document.java
@@ -1024,7 +1024,7 @@
   }-*/;
 
   /**
-   * Enables or disables scrolling of the document
+   * Enables or disables scrolling of the document.
    * 
    * @param enable whether scrolling should be enabled or disabled
    */
diff --git a/user/src/com/google/gwt/rpc/server/RpcServlet.java b/user/src/com/google/gwt/rpc/server/RpcServlet.java
index 28a0ce3..5c0a358 100644
--- a/user/src/com/google/gwt/rpc/server/RpcServlet.java
+++ b/user/src/com/google/gwt/rpc/server/RpcServlet.java
@@ -288,7 +288,6 @@
    * 
    * @param request the request being served
    * @param response the response that will be written into
-   * @param responsePayload the payload that is about to be sent to the client
    * @return <code>true</code> if responsePayload should be GZIP compressed,
    *         otherwise <code>false</code>.
    */
diff --git a/user/src/com/google/gwt/user/rebind/rpc/CustomFieldSerializerValidator.java b/user/src/com/google/gwt/user/rebind/rpc/CustomFieldSerializerValidator.java
index 08520ca..a38478e 100644
--- a/user/src/com/google/gwt/user/rebind/rpc/CustomFieldSerializerValidator.java
+++ b/user/src/com/google/gwt/user/rebind/rpc/CustomFieldSerializerValidator.java
@@ -105,12 +105,6 @@
    * Returns a list of error messages associated with the custom field
    * serializer.
    * 
-   * @param streamReaderClass
-   *          {@link com.google.gwt.user.client.rpc.SerializationStreamReader
-   *          SerializationStreamReader}
-   * @param streamWriterClass
-   *          {@link com.google.gwt.user.client.rpc.SerializationStreamWriter
-   *          SerializationStreamWriter}
    * @param serializer the class which performs the serialization
    * @param serializee the class being serialized
    * @return list of error messages, if any, associated with the custom field
diff --git a/user/test/com/google/gwt/dom/client/DocumentTest.java b/user/test/com/google/gwt/dom/client/DocumentTest.java
index 6d10b86..2cf11b8 100644
--- a/user/test/com/google/gwt/dom/client/DocumentTest.java
+++ b/user/test/com/google/gwt/dom/client/DocumentTest.java
@@ -120,7 +120,7 @@
   }
 
   /**
-   * getElementById, getElementsByTagName
+   * getElementById, getElementsByTagName.
    */
   public void testGetElements() {
     Document doc = Document.get();
@@ -140,7 +140,7 @@
   }
 
   /**
-   * domain, referrer, title, url
+   * domain, referrer, title, url.
    */
   public void testProperties() {
     Document doc = Document.get();
diff --git a/user/test/com/google/gwt/dom/client/FormTests.java b/user/test/com/google/gwt/dom/client/FormTests.java
index ea32099..ceceb0e 100644
--- a/user/test/com/google/gwt/dom/client/FormTests.java
+++ b/user/test/com/google/gwt/dom/client/FormTests.java
@@ -28,7 +28,7 @@
   }
 
   /**
-   * getElements
+   * getElements.
    */
   public void testGetElements() {
     Document doc = Document.get();
diff --git a/user/test/com/google/gwt/dom/client/MapTests.java b/user/test/com/google/gwt/dom/client/MapTests.java
index 4cb130d..7708d92 100644
--- a/user/test/com/google/gwt/dom/client/MapTests.java
+++ b/user/test/com/google/gwt/dom/client/MapTests.java
@@ -28,7 +28,7 @@
   }
 
   /**
-   * getAreas
+   * getAreas.
    */
   public void testGetArea() {
     Document doc = Document.get();
diff --git a/user/test/com/google/gwt/dom/client/NodeTest.java b/user/test/com/google/gwt/dom/client/NodeTest.java
index 149d796..8ff6956 100644
--- a/user/test/com/google/gwt/dom/client/NodeTest.java
+++ b/user/test/com/google/gwt/dom/client/NodeTest.java
@@ -29,7 +29,7 @@
   }
 
   /**
-   * appendChild, insertBefore, removeChild, replaceChild
+   * appendChild, insertBefore, removeChild, replaceChild.
    */
   public void testAppendRemoveReplace() {
     Document doc = Document.get();
@@ -87,7 +87,7 @@
   }
 
   /**
-   * setAttribute, getAttribute, hasAttributes, hasAttribute
+   * setAttribute, getAttribute, hasAttributes, hasAttribute.
    */
   public void testAttributes() {
     Document doc = Document.get();
@@ -98,7 +98,7 @@
   }
 
   /**
-   * childNodes, hasChildNodes
+   * childNodes, hasChildNodes.
    */
   public void testChildNodeList() {
     Document doc = Document.get();
@@ -191,7 +191,7 @@
   }
 
   /**
-   * nodeName, nodeValue
+   * nodeName, nodeValue.
    */
   public void testNodeNameAndValue() {
     Document doc = Document.get();
@@ -230,7 +230,7 @@
   }
 
   /**
-   * nodeType
+   * nodeType.
    */
   public void testNodeType() {
     Document doc = Document.get();
@@ -243,7 +243,7 @@
   }
 
   /**
-   * ownerDocument
+   * ownerDocument.
    */
   public void testOwnerDocument() {
     Document doc = Document.get();
@@ -266,7 +266,7 @@
   }
 
   /**
-   * getParentNode, firstChild, lastChild, nextSibling, previousSibling
+   * getParentNode, firstChild, lastChild, nextSibling, previousSibling.
    */
   public void testParentAndSiblings() {
     Document doc = Document.get();
diff --git a/user/test/com/google/gwt/dom/client/SelectTests.java b/user/test/com/google/gwt/dom/client/SelectTests.java
index d8bfc6c..5223f65 100644
--- a/user/test/com/google/gwt/dom/client/SelectTests.java
+++ b/user/test/com/google/gwt/dom/client/SelectTests.java
@@ -28,7 +28,7 @@
   }
 
   /**
-   * add, remove
+   * add, remove.
    */
   public void testAddRemove() {
     Document doc = Document.get();
@@ -63,7 +63,7 @@
   }
 
   /**
-   * selectedIndex, option.selected
+   * selectedIndex, option.selected.
    */
   public void testSelection() {
     Document doc = Document.get();
@@ -96,7 +96,7 @@
   }
 
   /**
-   * multiple
+   * multiple.
    */
   public void testMultipleSelection() {
     Document doc = Document.get();
diff --git a/user/test/com/google/gwt/dom/client/TableTests.java b/user/test/com/google/gwt/dom/client/TableTests.java
index 7c3a3cd..8311383 100644
--- a/user/test/com/google/gwt/dom/client/TableTests.java
+++ b/user/test/com/google/gwt/dom/client/TableTests.java
@@ -30,7 +30,7 @@
   }
 
   /**
-   * insertRow, getRows, rowIndex
+   * insertRow, getRows, rowIndex.
    */
   public void testInsertRow() {
     Document doc = Document.get();
@@ -58,7 +58,7 @@
   }
 
   /**
-   * insertCell, getCells, cellIndex
+   * insertCell, getCells, cellIndex.
    */
   public void testInsertCell() {
     Document doc = Document.get();
@@ -90,7 +90,7 @@
 
   /**
    * createTHead, thead, tfoot, createTFoot, tBodies, section.insertRow,
-   * section.rows, deleteTHead, deleteTFoot
+   * section.rows, deleteTHead, deleteTFoot.
    */
   public void testSections() {
     TableElement table = Document.get().createTableElement();
diff --git a/user/test/com/google/gwt/emultest/java/lang/C.java b/user/test/com/google/gwt/emultest/java/lang/C.java
index ac4fb14..44af6e5 100644
--- a/user/test/com/google/gwt/emultest/java/lang/C.java
+++ b/user/test/com/google/gwt/emultest/java/lang/C.java
@@ -16,7 +16,7 @@
 package com.google.gwt.emultest.java.lang;
 
 /**
- * Interface to contain constants shared between StringTest.java and String.java
+ * Interface to contain constants shared between StringTest.java and String.java.
  */
 public class C {
   public static String FLOAT_STRING = "123.4599";
diff --git a/user/test/com/google/gwt/emultest/java/util/StackProfile.java b/user/test/com/google/gwt/emultest/java/util/StackProfile.java
index 2c649e1..fa941c9 100644
--- a/user/test/com/google/gwt/emultest/java/util/StackProfile.java
+++ b/user/test/com/google/gwt/emultest/java/util/StackProfile.java
@@ -25,7 +25,7 @@
 public class StackProfile extends WidgetProfile {
 
   /**
-   * Sets module name so that javascript compiler can operate
+   * Sets module name so that javascript compiler can operate.
    */
   public String getModuleName() {
     return "com.google.gwt.emultest.EmulSuite";
diff --git a/user/test/com/google/gwt/emultest/java/util/StackTest.java b/user/test/com/google/gwt/emultest/java/util/StackTest.java
index 3d02cca..28e3930 100644
--- a/user/test/com/google/gwt/emultest/java/util/StackTest.java
+++ b/user/test/com/google/gwt/emultest/java/util/StackTest.java
@@ -29,7 +29,7 @@
   public static final int TEST_SIZE = 10;
   public static Stack testStack = new Stack();
 
-  /** Checks for emptiness of stack by peeking and popping */
+  /** Checks for emptiness of stack by peeking and popping. */
   public void checkEmptiness(Stack s) {
     assertTrue(s.empty());
     try {
@@ -45,12 +45,12 @@
     }
   }
 
-  /** Sets module name so that javascript compiler can operate */
+  /** Sets module name so that javascript compiler can operate. */
   public String getModuleName() {
     return "com.google.gwt.emultest.EmulSuite";
   }
 
-  /** Tests clone on Stacks */
+  /** Tests clone on Stacks. */
   public void testClone() {
     Stack large = createLargeStack();
     Stack cloned = (Stack) large.clone();
@@ -77,7 +77,7 @@
     checkLargeStack(large, TEST_SIZE);
   }
 
-  /** tests empty and tries to get emptyStackException as desired */
+  /** tests empty and tries to get emptyStackException as desired. */
   public void testEmptyAndEmptyStackException() {
     Stack s = new Stack();
     String item = "empty1";
@@ -88,7 +88,7 @@
     checkEmptiness(s);
   }
 
-  /** Tests pop and peek */
+  /** Tests pop and peek. */
   public void testPopAndPeek() {
     int x = testStack.size();
     Object item = testStack.peek();
@@ -96,7 +96,7 @@
     assertEquals(x - 1, testStack.size());
   }
 
-  /** Tests push and peek */
+  /** Tests push and peek. */
   public void testPushAndPeek() {
     int x = testStack.size();
     Object item = "4";
@@ -107,7 +107,7 @@
 
   /**
    * Tests all combinations of search for a stack that attains a max size of
-   * TEST_SEARCH_SIZE
+   * TEST_SEARCH_SIZE.
    */
   public void testSearch() {
     Stack searchStack = new Stack();
diff --git a/user/test/com/google/gwt/i18n/rebind/MessageFormatParserTest.java b/user/test/com/google/gwt/i18n/rebind/MessageFormatParserTest.java
index 9379462..cbfb84c 100644
--- a/user/test/com/google/gwt/i18n/rebind/MessageFormatParserTest.java
+++ b/user/test/com/google/gwt/i18n/rebind/MessageFormatParserTest.java
@@ -24,7 +24,7 @@
 import java.util.List;
 
 /**
- * Test for {@link MessageFormatParser}
+ * Test for {@link MessageFormatParser}.
  */
 public class MessageFormatParserTest extends TestCase {
 
diff --git a/user/test/com/google/gwt/user/client/rpc/UnicodeEscapingTest.java b/user/test/com/google/gwt/user/client/rpc/UnicodeEscapingTest.java
index dcb8fbb..187e51b 100644
--- a/user/test/com/google/gwt/user/client/rpc/UnicodeEscapingTest.java
+++ b/user/test/com/google/gwt/user/client/rpc/UnicodeEscapingTest.java
@@ -30,7 +30,7 @@
  */
 public class UnicodeEscapingTest extends GWTTestCase {
 
-  /** the size of a block of characters to test */
+  /** the size of a block of characters to test. */
   private static final int CHARACTER_BLOCK_SIZE = 64;
 
   /**
@@ -40,7 +40,7 @@
    */
   private static final int NON_BMP_TEST_INCREMENT = 8192 + 64;
 
-  /** the time to wait for the test of a block of characters */
+  /** the time to wait for the test of a block of characters. */
   private static final int TEST_FINISH_DELAY_MS = 500000;
 
   /**
@@ -105,7 +105,7 @@
     return service;
   }
 
-  /** start of current block being tested */
+  /** start of current block being tested. */
   private int current;
 
   @Override
diff --git a/user/test/com/google/gwt/user/client/ui/CreateEventTest.java b/user/test/com/google/gwt/user/client/ui/CreateEventTest.java
index 793b0ae..8a668a0 100644
--- a/user/test/com/google/gwt/user/client/ui/CreateEventTest.java
+++ b/user/test/com/google/gwt/user/client/ui/CreateEventTest.java
@@ -212,7 +212,7 @@
   }
 
   /**
-   * Tests NativeEvent.stopPropagation()
+   * Tests NativeEvent.stopPropagation().
    */
   public void testStopPropagation() {
     NonBubbleAssertingEventListener listener = new NonBubbleAssertingEventListener(
diff --git a/user/test/com/google/gwt/user/maptests/FastStringMapTest.java b/user/test/com/google/gwt/user/maptests/FastStringMapTest.java
index 9ba4d58..f176661 100644
--- a/user/test/com/google/gwt/user/maptests/FastStringMapTest.java
+++ b/user/test/com/google/gwt/user/maptests/FastStringMapTest.java
@@ -20,7 +20,7 @@
 import java.util.Map;
 
 /**
- * Test class for <code>FastStringMap</code>
+ * Test class for <code>FastStringMap</code>.
  */
 public class FastStringMapTest extends TestMap {
 
diff --git a/user/test/com/google/gwt/user/server/rpc/RPCTest.java b/user/test/com/google/gwt/user/server/rpc/RPCTest.java
index 404c8f4..4a16d50 100644
--- a/user/test/com/google/gwt/user/server/rpc/RPCTest.java
+++ b/user/test/com/google/gwt/user/server/rpc/RPCTest.java
@@ -191,7 +191,7 @@
   }
 
   /**
-   * Tests for method {@link RPC#decodeRequest(String)}
+   * Tests for method {@link RPC#decodeRequest(String)}.
    * 
    * <p/>
    * Cases:
@@ -223,7 +223,7 @@
   }
 
   /**
-   * Tests for method {@link RPC#decodeRequest(String, Class)}
+   * Tests for method {@link RPC#decodeRequest(String, Class)}.
    * 
    * <p/>
    * Cases:
@@ -411,7 +411,7 @@
   }
 
   /**
-   * Tests for {@link RPC#encodeResponseForSuccess(Method, Object)}
+   * Tests for {@link RPC#encodeResponseForSuccess(Method, Object)}.
    * 
    * Cases:
    * <ol>
@@ -456,7 +456,7 @@
   }
 
   /**
-   * Tests for {@link RPC#invokeAndEncodeResponse(Object, Method, Object[])}
+   * Tests for {@link RPC#invokeAndEncodeResponse(Object, Method, Object[])}.
    * 
    * Cases:
    * <ol>
