diff --git a/dev/core/src/com/google/gwt/core/ext/linker/impl/HostedModeTemplate.js b/dev/core/src/com/google/gwt/core/ext/linker/impl/HostedModeTemplate.js
index 488a56b..e0a2727 100644
--- a/dev/core/src/com/google/gwt/core/ext/linker/impl/HostedModeTemplate.js
+++ b/dev/core/src/com/google/gwt/core/ext/linker/impl/HostedModeTemplate.js
@@ -51,6 +51,7 @@
   if (isHostedMode()) {
     $stats && $stats({
       moduleName: '__MODULE_NAME__',
+      sessionId: $sessionId,
       subSystem: 'startup',
       evtGroup: 'bootstrap', 
       millis:(new Date()).getTime(), 
@@ -101,6 +102,7 @@
       // Record when the module EntryPoints return.
       $stats && $stats({
         moduleName: '__MODULE_NAME__',
+        sessionId: $sessionId,
         subSystem: 'startup',
         evtGroup: 'moduleStartup',
         millis:(new Date()).getTime(),
@@ -295,7 +297,8 @@
        * avoid FF2 refresh quirks.
        */
       $stats && $stats({
-        moduleName:'__MODULE_NAME__', 
+        moduleName:'__MODULE_NAME__',
+        sessionId: $sessionId,
         subSystem:'startup', 
         evtGroup: 'moduleStartup', 
         millis:(new Date()).getTime(), 
@@ -331,7 +334,8 @@
     // Mark this module's script injection done and (possibly) start the module.
     scriptsDone = true;
     $stats && $stats({
-      moduleName:'__MODULE_NAME__', 
+      moduleName:'__MODULE_NAME__',
+      sessionId: $sessionId,
       subSystem:'startup', 
       evtGroup: 'loadExternalRefs', 
       millis:(new Date()).getTime(), 
@@ -380,7 +384,8 @@
   // --------------- WINDOW ONLOAD HOOK ---------------
 
   $stats && $stats({
-    moduleName:'__MODULE_NAME__', 
+    moduleName:'__MODULE_NAME__',
+    sessionId: $sessionId,
     subSystem:'startup', 
     evtGroup: 'bootstrap', 
     millis:(new Date()).getTime(), 
@@ -438,7 +443,8 @@
   }, 50);
 
   $stats && $stats({
-    moduleName:'__MODULE_NAME__', 
+    moduleName:'__MODULE_NAME__',
+    sessionId: $sessionId,
     subSystem:'startup', 
     evtGroup: 'bootstrap', 
     millis:(new Date()).getTime(), 
@@ -446,10 +452,11 @@
   });
 
   $stats && $stats({
-    moduleName:'__MODULE_NAME__', 
-    subSystem:'startup', 
-    evtGroup: 'loadExternalRefs', 
-    millis:(new Date()).getTime(), 
+    moduleName:'__MODULE_NAME__',
+    sessionId: $sessionId,
+    subSystem:'startup',
+    evtGroup: 'loadExternalRefs',
+    millis:(new Date()).getTime(),
     type: 'begin'
   });
 
diff --git a/dev/core/src/com/google/gwt/core/ext/linker/impl/hosted.html b/dev/core/src/com/google/gwt/core/ext/linker/impl/hosted.html
index 9b312e0..7479600 100644
--- a/dev/core/src/com/google/gwt/core/ext/linker/impl/hosted.html
+++ b/dev/core/src/com/google/gwt/core/ext/linker/impl/hosted.html
@@ -5,13 +5,14 @@
 var $wnd = parent;
 var $doc = $wnd.document;
 var $moduleName, $moduleBase, $entry
-,$stats = $wnd.__gwtStatsEvent ? function(a) {return $wnd.__gwtStatsEvent(a);} : null;
+,$stats = $wnd.__gwtStatsEvent ? function(a) {return $wnd.__gwtStatsEvent(a);} : null
+,$sessionId = $wnd.__gwtStatsSessionId ? $wnd.__gwtStatsSessionId : null;
 // Lightweight metrics
 if ($stats) {
   var moduleFuncName = location.search.substr(1);
   var moduleFunc = $wnd[moduleFuncName];
   var moduleName = moduleFunc ? moduleFunc.moduleName : "unknown";
-  $stats({moduleName:moduleName,subSystem:'startup',evtGroup:'moduleStartup',millis:(new Date()).getTime(),type:'moduleEvalStart'});
+  $stats({moduleName:moduleName,sessionId:$sessionId,subSystem:'startup',evtGroup:'moduleStartup',millis:(new Date()).getTime(),type:'moduleEvalStart'});
 }
 var $hostedHtmlVersion="2.0";
 
@@ -270,7 +271,7 @@
 
 // Lightweight metrics
 window.fireOnModuleLoadStart = function(className) {
-  $stats && $stats({moduleName:$moduleName, subSystem:'startup', evtGroup:'moduleStartup', millis:(new Date()).getTime(), type:'onModuleLoadStart', className:className});
+  $stats && $stats({moduleName:$moduleName, sessionId:$sessionId, subSystem:'startup', evtGroup:'moduleStartup', millis:(new Date()).getTime(), type:'onModuleLoadStart', className:className});
 };
 
 window.__gwt_module_id = 0;
@@ -279,7 +280,7 @@
 <font face='arial' size='-1'>This html file is for hosted mode support.</font>
 <script><!--
 // Lightweight metrics
-$stats && $stats({moduleName:$moduleName,subSystem:'startup',evtGroup:'moduleStartup',millis:(new Date()).getTime(),type:'moduleEvalEnd'});
+$stats && $stats({moduleName:$moduleName, sessionId:$sessionId, subSystem:'startup', evtGroup:'moduleStartup', millis:(new Date()).getTime(), type:'moduleEvalEnd'});
 
 // OOPHM currently only supports IFrameLinker
 var query = parent.location.search;
diff --git a/dev/core/src/com/google/gwt/core/linker/IFrameLinker.java b/dev/core/src/com/google/gwt/core/linker/IFrameLinker.java
index aa79a1d..5785d7f 100644
--- a/dev/core/src/com/google/gwt/core/linker/IFrameLinker.java
+++ b/dev/core/src/com/google/gwt/core/linker/IFrameLinker.java
@@ -205,7 +205,8 @@
     DefaultTextOutput out = new DefaultTextOutput(context.isOutputCompact());
 
     out.print("$stats && $stats({moduleName:'" + context.getModuleName()
-        + "',subSystem:'startup',evtGroup:'moduleStartup'"
+        + "',sessionId:$sessionId"
+        + ",subSystem:'startup',evtGroup:'moduleStartup'"
         + ",millis:(new Date()).getTime(),type:'moduleEvalEnd'});");
 
     // Generate the call to tell the bootstrap code that we're ready to go.
@@ -305,10 +306,13 @@
       out.print("};");
       out.newlineOpt();
     }
-    out.print("var $stats = $wnd.__gwtStatsEvent ? function(a) {return $wnd.__gwtStatsEvent(a);} : null;");
+    out.print("var $stats = $wnd.__gwtStatsEvent ? function(a) {return $wnd.__gwtStatsEvent(a);} : null,");
+    out.newlineOpt();
+    out.print("$sessionId = $wnd.__gwtStatsSessionId ? $wnd.__gwtStatsSessionId : null;");
     out.newlineOpt();
     out.print("$stats && $stats({moduleName:'" + context.getModuleName()
-        + "',subSystem:'startup',evtGroup:'moduleStartup'"
+        + "',sessionId:$sessionId"
+        + ",subSystem:'startup',evtGroup:'moduleStartup'"
         + ",millis:(new Date()).getTime(),type:'moduleEvalStart'});");
     out.newlineOpt();
     out.print("</script></head>");
diff --git a/dev/core/src/com/google/gwt/core/linker/IFrameTemplate.js b/dev/core/src/com/google/gwt/core/linker/IFrameTemplate.js
index 6d5bbd7..f8873fd 100644
--- a/dev/core/src/com/google/gwt/core/linker/IFrameTemplate.js
+++ b/dev/core/src/com/google/gwt/core/linker/IFrameTemplate.js
@@ -21,6 +21,7 @@
   var $wnd = window
   ,$doc = document
   ,$stats = $wnd.__gwtStatsEvent ? function(a) {return $wnd.__gwtStatsEvent(a);} : null
+  ,$sessionId = $wnd.__gwtStatsSessionId ? $wnd.__gwtStatsSessionId : null
 
   // These variables gate calling gwtOnLoad; all must be true to start
   ,scriptsDone, loadDone, bodyDone
@@ -48,6 +49,7 @@
 
   $stats && $stats({
     moduleName: '__MODULE_NAME__',
+    sessionId: $sessionId,
     subSystem: 'startup',
     evtGroup: 'bootstrap', 
     millis:(new Date()).getTime(), 
@@ -100,6 +102,7 @@
       // Record when the module EntryPoints return.
       $stats && $stats({
         moduleName: '__MODULE_NAME__',
+        sessionId: $sessionId,
         subSystem: 'startup',
         evtGroup: 'moduleStartup',
         millis:(new Date()).getTime(),
@@ -294,7 +297,8 @@
        * avoid FF2 refresh quirks.
        */
       $stats && $stats({
-        moduleName:'__MODULE_NAME__', 
+        moduleName:'__MODULE_NAME__',
+        sessionId: $sessionId,
         subSystem:'startup', 
         evtGroup: 'moduleStartup', 
         millis:(new Date()).getTime(), 
@@ -330,7 +334,8 @@
     // Mark this module's script injection done and (possibly) start the module.
     scriptsDone = true;
     $stats && $stats({
-      moduleName:'__MODULE_NAME__', 
+      moduleName:'__MODULE_NAME__',
+      sessionId: $sessionId,
       subSystem:'startup', 
       evtGroup: 'loadExternalRefs', 
       millis:(new Date()).getTime(), 
@@ -361,7 +366,8 @@
   // --------------- WINDOW ONLOAD HOOK ---------------
 
   $stats && $stats({
-    moduleName:'__MODULE_NAME__', 
+    moduleName:'__MODULE_NAME__',
+    sessionId: $sessionId,
     subSystem:'startup', 
     evtGroup: 'bootstrap', 
     millis:(new Date()).getTime(), 
@@ -415,7 +421,8 @@
   }, 50);
 
   $stats && $stats({
-    moduleName:'__MODULE_NAME__', 
+    moduleName:'__MODULE_NAME__',
+    sessionId: $sessionId,
     subSystem:'startup', 
     evtGroup: 'bootstrap', 
     millis:(new Date()).getTime(), 
@@ -423,7 +430,8 @@
   });
 
   $stats && $stats({
-    moduleName:'__MODULE_NAME__', 
+    moduleName:'__MODULE_NAME__',
+    sessionId: $sessionId,
     subSystem:'startup', 
     evtGroup: 'loadExternalRefs', 
     millis:(new Date()).getTime(), 
diff --git a/dev/core/src/com/google/gwt/core/linker/XSLinker.java b/dev/core/src/com/google/gwt/core/linker/XSLinker.java
index 43e9820..185c29d 100644
--- a/dev/core/src/com/google/gwt/core/linker/XSLinker.java
+++ b/dev/core/src/com/google/gwt/core/linker/XSLinker.java
@@ -80,7 +80,8 @@
     out.print("var $stats = $wnd.__gwtStatsEvent ? function(a) {return $wnd.__gwtStatsEvent(a);} : null;");
     out.newlineOpt();
     out.print("$stats && $stats({moduleName:'" + context.getModuleName()
-        + "',subSystem:'startup',evtGroup:'moduleStartup'"
+        + "',sessionId:$sessionId"
+        + ",subSystem:'startup',evtGroup:'moduleStartup'"
         + ",millis:(new Date()).getTime(),type:'moduleEvalStart'});");
     out.newlineOpt();
 
@@ -93,7 +94,8 @@
     DefaultTextOutput out = new DefaultTextOutput(context.isOutputCompact());
 
     out.print("$stats && $stats({moduleName:'" + context.getModuleName()
-        + "',subSystem:'startup',evtGroup:'moduleStartup'"
+        + "',sessionId:$sessionId"
+        + ",subSystem:'startup',evtGroup:'moduleStartup'"
         + ",millis:(new Date()).getTime(),type:'moduleEvalEnd'});");
 
     // Generate the call to tell the bootstrap code that we're ready to go.
diff --git a/dev/core/src/com/google/gwt/core/linker/XSTemplate.js b/dev/core/src/com/google/gwt/core/linker/XSTemplate.js
index 8cbdbe9..811a096 100644
--- a/dev/core/src/com/google/gwt/core/linker/XSTemplate.js
+++ b/dev/core/src/com/google/gwt/core/linker/XSTemplate.js
@@ -48,6 +48,7 @@
 
   $stats && $stats({
     moduleName: '__MODULE_NAME__',
+    sessionId: $sessionId,
     subSystem: 'startup',
     evtGroup: 'bootstrap', 
     millis:(new Date()).getTime(), 
@@ -85,6 +86,7 @@
       // Record when the module EntryPoints return.
       $stats && $stats({
         moduleName: '__MODULE_NAME__',
+        sessionId: $sessionId,
         subSystem: 'startup',
         evtGroup: 'moduleStartup',
         millis:(new Date()).getTime(),
@@ -292,6 +294,7 @@
 
   $stats && $stats({
     moduleName:'__MODULE_NAME__', 
+    sessionId: $sessionId,
     subSystem:'startup', 
     evtGroup: 'bootstrap', 
     millis:(new Date()).getTime(), 
@@ -342,6 +345,7 @@
 
   $stats && $stats({
     moduleName:'__MODULE_NAME__', 
+    sessionId: $sessionId,
     subSystem:'startup', 
     evtGroup: 'bootstrap', 
     millis:(new Date()).getTime(), 
@@ -350,6 +354,7 @@
 
   $stats && $stats({
     moduleName:'__MODULE_NAME__', 
+    sessionId: $sessionId,
     subSystem:'startup', 
     evtGroup: 'loadExternalRefs', 
     millis:(new Date()).getTime(), 
@@ -371,11 +376,11 @@
   var compiledScriptTag = '"<script src=\\"' + base + strongName + '.cache.js\\"></scr" + "ipt>"';
   $doc.write('<script><!--\n'
     + 'window.__gwtStatsEvent && window.__gwtStatsEvent({'
-    + 'moduleName:"__MODULE_NAME__", subSystem:"startup",'
+    + 'moduleName:"__MODULE_NAME__", sessionId:$sessionId, subSystem:"startup",'
     + 'evtGroup: "loadExternalRefs", millis:(new Date()).getTime(),'
     + 'type: "end"});'
     + 'window.__gwtStatsEvent && window.__gwtStatsEvent({'
-    + 'moduleName:"__MODULE_NAME__", subSystem:"startup",'
+    + 'moduleName:"__MODULE_NAME__", sessionId:$sessionId, subSystem:"startup",'
     + 'evtGroup: "moduleStartup", millis:(new Date()).getTime(),'
     + 'type: "moduleRequested"});'
     + 'document.write(' + compiledScriptTag + ');'
diff --git a/dev/core/src/com/google/gwt/dev/js/ast/JsRootScope.java b/dev/core/src/com/google/gwt/dev/js/ast/JsRootScope.java
index cadf257..03db287 100644
--- a/dev/core/src/com/google/gwt/dev/js/ast/JsRootScope.java
+++ b/dev/core/src/com/google/gwt/dev/js/ast/JsRootScope.java
@@ -110,7 +110,7 @@
         "JavaArray", "JavaMember",
 
         // GWT-defined identifiers
-        "$wnd", "$doc", "$entry", "$moduleName", "$moduleBase", "$gwt_version",
+        "$wnd", "$doc", "$entry", "$moduleName", "$moduleBase", "$gwt_version", "$sessionId",
 
         // Identifiers used by JsStackEmulator; later set to obfuscatable
         "$stack", "$stackDepth", "$location",
diff --git a/dev/core/super/com/google/gwt/dev/jjs/intrinsic/com/google/gwt/lang/Stats.java b/dev/core/super/com/google/gwt/dev/jjs/intrinsic/com/google/gwt/lang/Stats.java
index 79fbd86..7e4a74b 100644
--- a/dev/core/super/com/google/gwt/dev/jjs/intrinsic/com/google/gwt/lang/Stats.java
+++ b/dev/core/super/com/google/gwt/dev/jjs/intrinsic/com/google/gwt/lang/Stats.java
@@ -31,6 +31,7 @@
   static native boolean onModuleStart(String mainClassName) /*-{
     return $stats({
       moduleName: $moduleName,
+      sessionId: $sessionId,
       subSystem: "startup",
       evtGroup: "moduleStartup",
       millis : (new Date()).getTime(),
diff --git a/user/src/com/google/gwt/core/client/impl/AsyncFragmentLoader.java b/user/src/com/google/gwt/core/client/impl/AsyncFragmentLoader.java
index fb03197..7c02f04 100644
--- a/user/src/com/google/gwt/core/client/impl/AsyncFragmentLoader.java
+++ b/user/src/com/google/gwt/core/client/impl/AsyncFragmentLoader.java
@@ -242,6 +242,7 @@
         String type, Integer fragment, Integer size) /*-{
       var evt = {
        moduleName: @com.google.gwt.core.client.GWT::getModuleName()(), 
+        sessionId: $sessionId,
         subSystem: 'runAsync',
         evtGroup: eventGroup,
         millis: (new Date()).getTime(),
diff --git a/user/src/com/google/gwt/user/client/rpc/impl/RemoteServiceProxy.java b/user/src/com/google/gwt/user/client/rpc/impl/RemoteServiceProxy.java
index 54e72bd..793f63f 100644
--- a/user/src/com/google/gwt/user/client/rpc/impl/RemoteServiceProxy.java
+++ b/user/src/com/google/gwt/user/client/rpc/impl/RemoteServiceProxy.java
@@ -74,7 +74,8 @@
   public static native JavaScriptObject timeStat(String method, int count,
       String eventType) /*-{
     return {
-      moduleName: @com.google.gwt.core.client.GWT::getModuleName()(), 
+      moduleName: @com.google.gwt.core.client.GWT::getModuleName()(),
+      sessionId: $sessionId,
       subSystem: 'rpc',
       evtGroup: count,
       method: method,
