diff --git a/dev/core/src/com/google/gwt/dev/cfg/Compilation.java b/dev/core/src/com/google/gwt/dev/cfg/Compilation.java
index 72b2b50..5c70ef5 100644
--- a/dev/core/src/com/google/gwt/dev/cfg/Compilation.java
+++ b/dev/core/src/com/google/gwt/dev/cfg/Compilation.java
@@ -21,6 +21,11 @@
 import java.util.HashMap;
 import java.util.Map;
 
+/**
+ * Represents a single completed compilation.
+ * 
+ * @see Compilations
+ */
 public class Compilation {
 
   private Map rebindDecisions = new HashMap();
@@ -70,7 +75,7 @@
       // Error to try to change the existing mapping
       if (!recodedOutputName.equals(outputTypeName)) {
         String msg = "Decision '" + recodedOutputName
-          + "' already recorded for '" + inputTypeName + "'";
+            + "' already recorded for '" + inputTypeName + "'";
         throw new IllegalStateException(msg);
       }
       // already recorded this one
@@ -80,10 +85,12 @@
     // this was a new entry
     return true;
   }
+
   public void recordGeneratedTypeHash(String generatedTypeName,
       String sourceHash) {
     sourceHashByGeneratedTypeName.put(generatedTypeName, sourceHash);
   }
+
   public void setStrongName(String strongName) {
     this.strongName = strongName;
   }
diff --git a/dev/core/src/com/google/gwt/dev/cfg/CompilationSchema.java b/dev/core/src/com/google/gwt/dev/cfg/CompilationSchema.java
index 212a3b0..61ee3ae 100644
--- a/dev/core/src/com/google/gwt/dev/cfg/CompilationSchema.java
+++ b/dev/core/src/com/google/gwt/dev/cfg/CompilationSchema.java
@@ -17,6 +17,9 @@
 
 import com.google.gwt.dev.util.xml.Schema;
 
+/**
+ * The XML schema class to parse XML for deferred binding conditions.
+ */
 public class CompilationSchema extends Schema {
 
   private final class BodySchema extends Schema {
diff --git a/dev/core/src/com/google/gwt/dev/cfg/Compilations.java b/dev/core/src/com/google/gwt/dev/cfg/Compilations.java
index 27cd982..1cac6c7 100644
--- a/dev/core/src/com/google/gwt/dev/cfg/Compilations.java
+++ b/dev/core/src/com/google/gwt/dev/cfg/Compilations.java
@@ -23,6 +23,12 @@
 import java.util.Iterator;
 import java.util.List;
 
+/**
+ * Manages a set of {@link Compilation} objects keyed by deferred binding
+ * decisions. This class encapsulaes the idea of caching a set of compilations,
+ * some of which may be reusable between permutations to avoid redundant
+ * recompilation.
+ */
 public class Compilations {
 
   private final List list = new ArrayList();
diff --git a/dev/core/src/com/google/gwt/dev/cfg/CompoundCondition.java b/dev/core/src/com/google/gwt/dev/cfg/CompoundCondition.java
index 40f99ce..b9ff8de 100644
--- a/dev/core/src/com/google/gwt/dev/cfg/CompoundCondition.java
+++ b/dev/core/src/com/google/gwt/dev/cfg/CompoundCondition.java
@@ -15,6 +15,10 @@
  */
 package com.google.gwt.dev.cfg;
 
+/**
+ * Abstract base class for various kinds of compound deferred binding
+ * conditions.
+ */
 public abstract class CompoundCondition extends Condition {
 
   private final Conditions conditions = new Conditions();
diff --git a/dev/core/src/com/google/gwt/dev/cfg/Condition.java b/dev/core/src/com/google/gwt/dev/cfg/Condition.java
index 5b9f57f..e93c1cc 100644
--- a/dev/core/src/com/google/gwt/dev/cfg/Condition.java
+++ b/dev/core/src/com/google/gwt/dev/cfg/Condition.java
@@ -19,6 +19,9 @@
 import com.google.gwt.core.ext.TreeLogger;
 import com.google.gwt.core.ext.UnableToCompleteException;
 
+/**
+ * Abstract base class for various kinds of deferred binding conditions.
+ */
 public abstract class Condition {
   public final boolean isTrue(TreeLogger logger, GeneratorContext context,
       String testType) throws UnableToCompleteException {
diff --git a/dev/core/src/com/google/gwt/dev/cfg/ConditionAll.java b/dev/core/src/com/google/gwt/dev/cfg/ConditionAll.java
index 011b58a..e8f948e 100644
--- a/dev/core/src/com/google/gwt/dev/cfg/ConditionAll.java
+++ b/dev/core/src/com/google/gwt/dev/cfg/ConditionAll.java
@@ -21,6 +21,10 @@
 
 import java.util.Iterator;
 
+/**
+ * A compound condition that is only satisfied if all of its children are
+ * satisfied.
+ */
 public class ConditionAll extends CompoundCondition {
 
   public ConditionAll() {
diff --git a/dev/core/src/com/google/gwt/dev/cfg/ConditionAny.java b/dev/core/src/com/google/gwt/dev/cfg/ConditionAny.java
index 1770249..7273f12 100644
--- a/dev/core/src/com/google/gwt/dev/cfg/ConditionAny.java
+++ b/dev/core/src/com/google/gwt/dev/cfg/ConditionAny.java
@@ -21,6 +21,9 @@
 
 import java.util.Iterator;
 
+/**
+ * A compound condition that is satisfied if any of its children are satisfied.
+ */
 public class ConditionAny extends CompoundCondition {
 
   public ConditionAny() {
diff --git a/dev/core/src/com/google/gwt/dev/cfg/ConditionNone.java b/dev/core/src/com/google/gwt/dev/cfg/ConditionNone.java
index 5b0a522..5134914 100644
--- a/dev/core/src/com/google/gwt/dev/cfg/ConditionNone.java
+++ b/dev/core/src/com/google/gwt/dev/cfg/ConditionNone.java
@@ -21,6 +21,10 @@
 
 import java.util.Iterator;
 
+/**
+ * A compound condition that is only satisfied if all of its children are
+ * unsatisfied.
+ */
 public class ConditionNone extends CompoundCondition {
 
   public ConditionNone() {
diff --git a/dev/core/src/com/google/gwt/dev/cfg/ConditionWhenPropertyIs.java b/dev/core/src/com/google/gwt/dev/cfg/ConditionWhenPropertyIs.java
index d8ac642..abd03b1 100644
--- a/dev/core/src/com/google/gwt/dev/cfg/ConditionWhenPropertyIs.java
+++ b/dev/core/src/com/google/gwt/dev/cfg/ConditionWhenPropertyIs.java
@@ -21,6 +21,10 @@
 import com.google.gwt.core.ext.TreeLogger;
 import com.google.gwt.core.ext.UnableToCompleteException;
 
+/**
+ * A deferred binding condition to determine whether a named property has a
+ * particular value.
+ */
 public class ConditionWhenPropertyIs extends Condition {
 
   private final String propName;
diff --git a/dev/core/src/com/google/gwt/dev/cfg/ConditionWhenTypeAssignableTo.java b/dev/core/src/com/google/gwt/dev/cfg/ConditionWhenTypeAssignableTo.java
index 26a872a..bc8e472 100644
--- a/dev/core/src/com/google/gwt/dev/cfg/ConditionWhenTypeAssignableTo.java
+++ b/dev/core/src/com/google/gwt/dev/cfg/ConditionWhenTypeAssignableTo.java
@@ -22,6 +22,10 @@
 import com.google.gwt.core.ext.typeinfo.TypeOracle;
 import com.google.gwt.dev.util.Util;
 
+/**
+ * A deferred binding condition to determine whether the type being rebound is
+ * assignment-compatible with a particular type.
+ */
 public class ConditionWhenTypeAssignableTo extends Condition {
 
   private final String assignableToTypeName;
diff --git a/dev/core/src/com/google/gwt/dev/cfg/ConditionWhenTypeIs.java b/dev/core/src/com/google/gwt/dev/cfg/ConditionWhenTypeIs.java
index 70427a4..732d78c 100644
--- a/dev/core/src/com/google/gwt/dev/cfg/ConditionWhenTypeIs.java
+++ b/dev/core/src/com/google/gwt/dev/cfg/ConditionWhenTypeIs.java
@@ -18,6 +18,10 @@
 import com.google.gwt.core.ext.GeneratorContext;
 import com.google.gwt.core.ext.TreeLogger;
 
+/**
+ * A deferred binding condition to determine whether the type being rebound is
+ * exactly a particular type.
+ */
 public class ConditionWhenTypeIs extends Condition {
 
   private final String exactTypeName;
diff --git a/dev/core/src/com/google/gwt/dev/cfg/Conditions.java b/dev/core/src/com/google/gwt/dev/cfg/Conditions.java
index 3127d34..e18dd95 100644
--- a/dev/core/src/com/google/gwt/dev/cfg/Conditions.java
+++ b/dev/core/src/com/google/gwt/dev/cfg/Conditions.java
@@ -19,6 +19,9 @@
 import java.util.Iterator;
 import java.util.List;
 
+/**
+ * A typed collection of {@link Condition} objects.
+ */
 public class Conditions {
 
   private final List list = new ArrayList();
diff --git a/dev/core/src/com/google/gwt/dev/cfg/DefaultPropertyProvider.java b/dev/core/src/com/google/gwt/dev/cfg/DefaultPropertyProvider.java
index 47a54f5..d3d589e 100644
--- a/dev/core/src/com/google/gwt/dev/cfg/DefaultPropertyProvider.java
+++ b/dev/core/src/com/google/gwt/dev/cfg/DefaultPropertyProvider.java
@@ -26,8 +26,17 @@
 import java.io.IOException;
 import java.io.StringReader;
 
+/**
+ * A property provider that reports property values specified literally in a
+ * host HTML page.
+ */
 public class DefaultPropertyProvider extends PropertyProvider {
 
+  /*
+   * TODO: this references 'parent' literally, which could be a problem if you
+   * were to include the selector script in the host page itself rather than in
+   * an iframe.
+   */
   public DefaultPropertyProvider(Property property) {
     super(property);
     String src = "function () {";
diff --git a/dev/core/src/com/google/gwt/dev/cfg/Messages.java b/dev/core/src/com/google/gwt/dev/cfg/Messages.java
index c24abad..a15b208 100644
--- a/dev/core/src/com/google/gwt/dev/cfg/Messages.java
+++ b/dev/core/src/com/google/gwt/dev/cfg/Messages.java
@@ -20,29 +20,32 @@
 import com.google.gwt.dev.util.msg.Message1String;
 import com.google.gwt.dev.util.msg.Message2ClassClass;
 
+/**
+ * User messages related to configuration.
+ */
 class Messages {
 
   public static final Message2ClassClass INVALID_CLASS_DERIVATION = new Message2ClassClass(
-    TreeLogger.ERROR, "Class '$0' must derive from '$1'");
+      TreeLogger.ERROR, "Class '$0' must derive from '$1'");
 
   public static final Message1String PROPERTY_NAME_INVALID = new Message1String(
-    TreeLogger.ERROR, "Invalid property name '$0'");
+      TreeLogger.ERROR, "Invalid property name '$0'");
 
   public static final Message1String PROPERTY_NOT_FOUND = new Message1String(
-    TreeLogger.ERROR, "Property '$0' not found");
+      TreeLogger.ERROR, "Property '$0' not found");
 
   public static final Message1String PROPERTY_VALUE_INVALID = new Message1String(
-    TreeLogger.ERROR, "Invalid property value '$0'");
+      TreeLogger.ERROR, "Invalid property value '$0'");
 
   public static final Message0 PUBLIC_PATH_LOCATIONS = new Message0(
-    TreeLogger.TRACE, "Public resources found in...");
+      TreeLogger.TRACE, "Public resources found in...");
 
   public static final Message0 SOURCE_PATH_LOCATIONS = new Message0(
-    TreeLogger.TRACE, "Translatable source found in...");
+      TreeLogger.TRACE, "Translatable source found in...");
 
   public static final Message1String UNABLE_TO_CREATE_OBJECT = new Message1String(
-    TreeLogger.ERROR, "Unable to create an instance of '$0'");
+      TreeLogger.ERROR, "Unable to create an instance of '$0'");
 
   public static final Message1String UNABLE_TO_LOAD_CLASS = new Message1String(
-    TreeLogger.ERROR, "Unable to load class '$0'");
+      TreeLogger.ERROR, "Unable to load class '$0'");
 }
diff --git a/dev/core/src/com/google/gwt/dev/cfg/ModuleDef.java b/dev/core/src/com/google/gwt/dev/cfg/ModuleDef.java
index a659c65..9187655 100644
--- a/dev/core/src/com/google/gwt/dev/cfg/ModuleDef.java
+++ b/dev/core/src/com/google/gwt/dev/cfg/ModuleDef.java
@@ -44,7 +44,8 @@
 import java.util.Map.Entry;
 
 /**
- * Represents a module specification.
+ * Represents a module specification. In principle, this could be built without
+ * XML for unit tests.
  */
 public class ModuleDef {
 
diff --git a/dev/core/src/com/google/gwt/dev/cfg/ModuleDefLoader.java b/dev/core/src/com/google/gwt/dev/cfg/ModuleDefLoader.java
index 0c207ad..f0f79fc 100644
--- a/dev/core/src/com/google/gwt/dev/cfg/ModuleDefLoader.java
+++ b/dev/core/src/com/google/gwt/dev/cfg/ModuleDefLoader.java
@@ -32,6 +32,9 @@
 import java.util.Map;
 import java.util.Set;
 
+/**
+ * The top-level API for loading module XML.
+ */
 public class ModuleDefLoader {
 
   // Should always be true. If it is false complete type oracle analysis and
diff --git a/dev/core/src/com/google/gwt/dev/cfg/Properties.java b/dev/core/src/com/google/gwt/dev/cfg/Properties.java
index 24580c0..4ae9ee7 100644
--- a/dev/core/src/com/google/gwt/dev/cfg/Properties.java
+++ b/dev/core/src/com/google/gwt/dev/cfg/Properties.java
@@ -21,6 +21,9 @@
 import java.util.Iterator;
 import java.util.Map;
 
+/**
+ * A typed map of deferred binding properties.
+ */
 public class Properties {
 
   private final Map map = new HashMap();
diff --git a/dev/core/src/com/google/gwt/dev/cfg/Property.java b/dev/core/src/com/google/gwt/dev/cfg/Property.java
index c3a6635..ec48e62 100644
--- a/dev/core/src/com/google/gwt/dev/cfg/Property.java
+++ b/dev/core/src/com/google/gwt/dev/cfg/Property.java
@@ -19,6 +19,10 @@
 import java.util.HashSet;
 import java.util.Set;
 
+/**
+ * Represents a single named deferred binding property that can answer with its
+ * value.
+ */
 public class Property implements Comparable {
 
   private String activeValue;
diff --git a/dev/core/src/com/google/gwt/dev/cfg/PropertyProvider.java b/dev/core/src/com/google/gwt/dev/cfg/PropertyProvider.java
index 3397f76..3657ac2 100644
--- a/dev/core/src/com/google/gwt/dev/cfg/PropertyProvider.java
+++ b/dev/core/src/com/google/gwt/dev/cfg/PropertyProvider.java
@@ -17,6 +17,9 @@
 
 import com.google.gwt.dev.js.ast.JsBlock;
 
+/**
+ * Produces a deferred binding property value by executing JavaScript code.
+ */
 public class PropertyProvider {
 
   private JsBlock body;
diff --git a/dev/core/src/com/google/gwt/dev/cfg/Rule.java b/dev/core/src/com/google/gwt/dev/cfg/Rule.java
index e995e5f..34e29aa 100644
--- a/dev/core/src/com/google/gwt/dev/cfg/Rule.java
+++ b/dev/core/src/com/google/gwt/dev/cfg/Rule.java
@@ -19,6 +19,9 @@
 import com.google.gwt.core.ext.TreeLogger;
 import com.google.gwt.core.ext.UnableToCompleteException;
 
+/**
+ * Abstract base class for various kinds of deferred binding rules.
+ */
 public abstract class Rule {
 
   private final ConditionAll rootCondition = new ConditionAll();
diff --git a/dev/core/src/com/google/gwt/dev/cfg/RuleFail.java b/dev/core/src/com/google/gwt/dev/cfg/RuleFail.java
index 84db434..2324678 100644
--- a/dev/core/src/com/google/gwt/dev/cfg/RuleFail.java
+++ b/dev/core/src/com/google/gwt/dev/cfg/RuleFail.java
@@ -19,6 +19,9 @@
 import com.google.gwt.core.ext.TreeLogger;
 import com.google.gwt.core.ext.UnableToCompleteException;
 
+/**
+ * A rule to explicitly fail during a deferred binding requrest.
+ */
 public class RuleFail extends Rule {
 
   public String realize(TreeLogger logger, GeneratorContext context,
diff --git a/dev/core/src/com/google/gwt/dev/cfg/RuleGenerateWith.java b/dev/core/src/com/google/gwt/dev/cfg/RuleGenerateWith.java
index 11fb88c..83481f0 100644
--- a/dev/core/src/com/google/gwt/dev/cfg/RuleGenerateWith.java
+++ b/dev/core/src/com/google/gwt/dev/cfg/RuleGenerateWith.java
@@ -20,6 +20,11 @@
 import com.google.gwt.core.ext.TreeLogger;
 import com.google.gwt.core.ext.UnableToCompleteException;
 
+/**
+ * A rule to replace the type being rebound with a class whose name is
+ * determined by a generator class. Generators usually generate new classes
+ * during the deferred binding process, but it is not required.
+ */
 public class RuleGenerateWith extends Rule {
 
   private final Generator generator;
diff --git a/dev/core/src/com/google/gwt/dev/cfg/RuleReplaceWith.java b/dev/core/src/com/google/gwt/dev/cfg/RuleReplaceWith.java
index b008ceb..4795f31 100644
--- a/dev/core/src/com/google/gwt/dev/cfg/RuleReplaceWith.java
+++ b/dev/core/src/com/google/gwt/dev/cfg/RuleReplaceWith.java
@@ -19,6 +19,9 @@
 import com.google.gwt.core.ext.TreeLogger;
 import com.google.gwt.core.ext.UnableToCompleteException;
 
+/**
+ * A rule to replace the type being rebound with an explicitly named class.
+ */
 public class RuleReplaceWith extends Rule {
 
   private final String replacementTypeName;
diff --git a/dev/core/src/com/google/gwt/dev/cfg/Rules.java b/dev/core/src/com/google/gwt/dev/cfg/Rules.java
index f499891..f27e7ca 100644
--- a/dev/core/src/com/google/gwt/dev/cfg/Rules.java
+++ b/dev/core/src/com/google/gwt/dev/cfg/Rules.java
@@ -18,6 +18,9 @@
 import java.util.Iterator;
 import java.util.LinkedList;
 
+/**
+ * A typed collection of {@link Rule} objects.
+ */
 public class Rules {
 
   private final LinkedList list = new LinkedList();
diff --git a/dev/core/src/com/google/gwt/dev/cfg/StaticPropertyOracle.java b/dev/core/src/com/google/gwt/dev/cfg/StaticPropertyOracle.java
index b1662f9..7cdea17 100644
--- a/dev/core/src/com/google/gwt/dev/cfg/StaticPropertyOracle.java
+++ b/dev/core/src/com/google/gwt/dev/cfg/StaticPropertyOracle.java
@@ -19,6 +19,10 @@
 import com.google.gwt.core.ext.PropertyOracle;
 import com.google.gwt.core.ext.TreeLogger;
 
+/**
+ * An implementation of {@link PropertyOracle} that maintains explicit property
+ * values, rather than computing them.
+ */
 public class StaticPropertyOracle implements PropertyOracle {
 
   private Property[] currentProps;
