diff --git a/dev/codeserver/java/com/google/gwt/dev/codeserver/recompile_template.js b/dev/codeserver/java/com/google/gwt/dev/codeserver/recompile_template.js
index 8c51f39..a4954ef 100644
--- a/dev/codeserver/java/com/google/gwt/dev/codeserver/recompile_template.js
+++ b/dev/codeserver/java/com/google/gwt/dev/codeserver/recompile_template.js
@@ -37,7 +37,7 @@
     __MAIN__
   };
 
-  if (/loaded|interactive|complete/.test($doc.readyState)) {
+  if (/loaded|complete/.test($doc.readyState)) {
     executeMain();
   } else {
     //defer app script insertion until the body is ready
diff --git a/dev/codeserver/java/com/google/gwt/dev/codeserver/stub.nocache.js b/dev/codeserver/java/com/google/gwt/dev/codeserver/stub.nocache.js
index ffad3a5..4f90b6b 100755
--- a/dev/codeserver/java/com/google/gwt/dev/codeserver/stub.nocache.js
+++ b/dev/codeserver/java/com/google/gwt/dev/codeserver/stub.nocache.js
@@ -54,7 +54,7 @@
     $head.insertBefore(devModeScript, $head.firstElementChild || $head.children[0]);
   };
 
-  if (/loaded|interactive|complete/.test($doc.readyState)) {
+  if (/loaded|complete/.test($doc.readyState)) {
     injectScriptTag();
   } else {
     //defer app script insertion until the body is ready
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 439342f..33f3696 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
@@ -440,7 +440,7 @@
 
   // Fallback. If onBodyDone() gets fired twice, it's not a big deal.
   var onBodyDoneTimerId = setInterval(function() {
-    if (/loaded|interactive|complete/.test($doc.readyState)) {
+    if (/loaded|complete/.test($doc.readyState)) {
       maybeInjectFrame();
       onBodyDone();
     }
diff --git a/dev/core/src/com/google/gwt/core/ext/linker/impl/isBodyLoaded.js b/dev/core/src/com/google/gwt/core/ext/linker/impl/isBodyLoaded.js
index 8b05eb8..2c3ce26 100644
--- a/dev/core/src/com/google/gwt/core/ext/linker/impl/isBodyLoaded.js
+++ b/dev/core/src/com/google/gwt/core/ext/linker/impl/isBodyLoaded.js
@@ -8,5 +8,5 @@
     // in isBodyLoadedFf35Fix.js
     return (typeof $doc.body != "undefined" && $doc.body != null);
   }
-  return (/loaded|interactive|complete/.test($doc.readyState));
+  return (/loaded|complete/.test($doc.readyState));
 }
diff --git a/dev/core/src/com/google/gwt/core/ext/linker/impl/isBodyLoadedFF35Fix.js b/dev/core/src/com/google/gwt/core/ext/linker/impl/isBodyLoadedFF35Fix.js
index 6811da9..d87a282 100644
--- a/dev/core/src/com/google/gwt/core/ext/linker/impl/isBodyLoadedFF35Fix.js
+++ b/dev/core/src/com/google/gwt/core/ext/linker/impl/isBodyLoadedFF35Fix.js
@@ -12,5 +12,5 @@
     // the body is loaded.
     return false;
   }
-  return (/loaded|interactive|complete/.test($doc.readyState));
+  return (/loaded|complete/.test($doc.readyState));
 }
\ No newline at end of file
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 5be11ae..713ef8c 100644
--- a/dev/core/src/com/google/gwt/core/linker/IFrameTemplate.js
+++ b/dev/core/src/com/google/gwt/core/linker/IFrameTemplate.js
@@ -311,7 +311,7 @@
 
   // Fallback. If onBodyDone() gets fired twice, it's not a big deal.
   var onBodyDoneTimerId = setInterval(function() {
-    if (/loaded|interactive|complete/.test($doc.readyState)) {
+    if (/loaded|complete/.test($doc.readyState)) {
       maybeInjectFrame();
       onBodyDone();
     }
diff --git a/dev/core/src/com/google/gwt/core/linker/SingleScriptTemplate.js b/dev/core/src/com/google/gwt/core/linker/SingleScriptTemplate.js
index 825801e..53d168d 100644
--- a/dev/core/src/com/google/gwt/core/linker/SingleScriptTemplate.js
+++ b/dev/core/src/com/google/gwt/core/linker/SingleScriptTemplate.js
@@ -322,7 +322,7 @@
 
   // Fallback. If onBodyDone() gets fired twice, it's not a big deal.
   var onBodyDoneTimerId = setInterval(function() {
-    if (/loaded|interactive|complete/.test($doc.readyState)) {
+    if (/loaded|complete/.test($doc.readyState)) {
       onBodyDone();
     }
   }, 50);
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 cd005ba..32ed4cd 100644
--- a/dev/core/src/com/google/gwt/core/linker/XSTemplate.js
+++ b/dev/core/src/com/google/gwt/core/linker/XSTemplate.js
@@ -240,7 +240,7 @@
 
   // Fallback. If onBodyDone() gets fired twice, it's not a big deal.
   var onBodyDoneTimerId = setInterval(function() {
-    if (/loaded|interactive|complete/.test($doc.readyState)) {
+    if (/loaded|complete/.test($doc.readyState)) {
       onBodyDone();
     }
   }, 50);
