diff --git a/dev/core/src/com/google/gwt/dev/util/log/speedtracer/SpeedTracerLogger.java b/dev/core/src/com/google/gwt/dev/util/log/speedtracer/SpeedTracerLogger.java
index 51148a5..d415527 100644
--- a/dev/core/src/com/google/gwt/dev/util/log/speedtracer/SpeedTracerLogger.java
+++ b/dev/core/src/com/google/gwt/dev/util/log/speedtracer/SpeedTracerLogger.java
@@ -113,7 +113,9 @@
 
     Event() {
       if (enabled) {
-        threadCpuTimeKeeper.resetTimeBase();
+        if (logThreadCpuTime) {
+          threadCpuTimeKeeper.resetTimeBase();
+        }
         recordStartTime();
         this.data = Lists.create();
         this.children = Lists.create();
@@ -702,10 +704,11 @@
 
   private final ElapsedNormalizedTimeKeeper elapsedTimeKeeper = new ElapsedNormalizedTimeKeeper();
 
-  private final ProcessNormalizedTimeKeeper processCpuTimeKeeper =
-      new ProcessNormalizedTimeKeeper();
+  private final ProcessNormalizedTimeKeeper processCpuTimeKeeper = 
+              (logProcessCpuTime) ? new ProcessNormalizedTimeKeeper() : null;
 
-  private final ThreadNormalizedTimeKeeper threadCpuTimeKeeper = new ThreadNormalizedTimeKeeper();
+  private final ThreadNormalizedTimeKeeper threadCpuTimeKeeper = 
+              (logThreadCpuTime) ? new ThreadNormalizedTimeKeeper() : null;
 
   /**
    * Constructor intended for unit testing.
@@ -899,9 +902,11 @@
     if (!threadPendingEvents.isEmpty()) {
       parent = threadPendingEvents.peek();
     } else {
-      // reset the thread CPU time base for top-level events (so events can be
-      // properly sequenced chronologically)
-      threadCpuTimeKeeper.resetTimeBase();
+      if (logThreadCpuTime) {
+        // reset the thread CPU time base for top-level events (so events can be
+        // properly sequenced chronologically)
+        threadCpuTimeKeeper.resetTimeBase();
+      }
     }
     
     Event newEvent = new Event(session, parent, type, data);
