diff --git a/dev/core/src/com/google/gwt/dev/Precompile.java b/dev/core/src/com/google/gwt/dev/Precompile.java
index 811892d..435465b 100644
--- a/dev/core/src/com/google/gwt/dev/Precompile.java
+++ b/dev/core/src/com/google/gwt/dev/Precompile.java
@@ -43,6 +43,7 @@
 import com.google.gwt.dev.util.Memory;
 import com.google.gwt.dev.util.PerfLogger;
 import com.google.gwt.dev.util.Util;
+import com.google.gwt.dev.util.arg.ArgHandlerCompileReport;
 import com.google.gwt.dev.util.arg.ArgHandlerDisableAggressiveOptimization;
 import com.google.gwt.dev.util.arg.ArgHandlerDisableCastChecking;
 import com.google.gwt.dev.util.arg.ArgHandlerDisableClassMetadata;
@@ -105,6 +106,7 @@
       registerHandler(new ArgHandlerDisableUpdateCheck(options));
       registerHandler(new ArgHandlerDumpSignatures(options));
       registerHandler(new ArgHandlerMaxPermsPerPrecompile(options));
+      registerHandler(new ArgHandlerCompileReport(options));
       registerHandler(new ArgHandlerSoyc(options));
       registerHandler(new ArgHandlerSoycDetailed(options));
     }
diff --git a/dev/core/src/com/google/gwt/dev/util/arg/ArgHandlerCompileReport.java b/dev/core/src/com/google/gwt/dev/util/arg/ArgHandlerCompileReport.java
new file mode 100644
index 0000000..02b1c78
--- /dev/null
+++ b/dev/core/src/com/google/gwt/dev/util/arg/ArgHandlerCompileReport.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2009 Google Inc.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.google.gwt.dev.util.arg;
+
+import com.google.gwt.util.tools.ArgHandlerFlag;
+
+/**
+ * An ArgHandler that enables Story Of Your Compile data-collection.
+ */
+public class ArgHandlerCompileReport extends ArgHandlerFlag {
+
+  private final OptionSoycEnabled options;
+
+  public ArgHandlerCompileReport(OptionSoycEnabled options) {
+    this.options = options;
+  }
+
+  @Override
+  public String getPurpose() {
+    return "Enable Compile Report (Story of Your Compile)";
+  }
+
+  @Override
+  public String getTag() {
+    return "-compileReport";
+  }
+
+  @Override
+  public boolean setFlag() {
+    options.setSoycEnabled(true);
+    return true;
+  }
+}
diff --git a/dev/core/src/com/google/gwt/dev/util/arg/ArgHandlerSoyc.java b/dev/core/src/com/google/gwt/dev/util/arg/ArgHandlerSoyc.java
index 0bcdabd..bf6b17c 100644
--- a/dev/core/src/com/google/gwt/dev/util/arg/ArgHandlerSoyc.java
+++ b/dev/core/src/com/google/gwt/dev/util/arg/ArgHandlerSoyc.java
@@ -39,6 +39,11 @@
   }
 
   @Override
+  public boolean isUndocumented() {
+    return true;
+  }
+
+  @Override
   public boolean setFlag() {
     options.setSoycEnabled(true);
     return true;
diff --git a/dev/core/src/com/google/gwt/dev/util/arg/ArgHandlerSoycDetailed.java b/dev/core/src/com/google/gwt/dev/util/arg/ArgHandlerSoycDetailed.java
index c278399..3fb028c 100644
--- a/dev/core/src/com/google/gwt/dev/util/arg/ArgHandlerSoycDetailed.java
+++ b/dev/core/src/com/google/gwt/dev/util/arg/ArgHandlerSoycDetailed.java
@@ -45,6 +45,7 @@
   @Override
   public boolean setFlag() {
     options.setSoycExtra(true);
+    options.setSoycEnabled(true);
     return true;
   }
 }
diff --git a/dev/core/src/com/google/gwt/dev/util/arg/OptionSoycDetailed.java b/dev/core/src/com/google/gwt/dev/util/arg/OptionSoycDetailed.java
index 6ab0217..2bd7223 100644
--- a/dev/core/src/com/google/gwt/dev/util/arg/OptionSoycDetailed.java
+++ b/dev/core/src/com/google/gwt/dev/util/arg/OptionSoycDetailed.java
@@ -26,6 +26,12 @@
   boolean isSoycExtra();
 
   /**
+   * Sets whether or not the compiler should record and emit SOYC information
+   * and build the dashboard.
+   */
+  void setSoycEnabled(boolean enabled);
+
+  /**
    * Sets whether or not the compiler should record and emit extra SOYC
    * information.
    */
