diff --git a/dev/core/src/com/google/gwt/dev/js/ast/JsRegExp.java b/dev/core/src/com/google/gwt/dev/js/ast/JsRegExp.java
index 89d3fcf..5a5be32 100644
--- a/dev/core/src/com/google/gwt/dev/js/ast/JsRegExp.java
+++ b/dev/core/src/com/google/gwt/dev/js/ast/JsRegExp.java
@@ -81,7 +81,9 @@
 
   @Override
   public boolean isInternable() {
-    return true;
+    // JavaScript regexes are stateful, methods like RegExp.test(...) keep track of
+    // the current match status in the regexp.
+    return false;
   }
 
   public void setFlags(String suffix) {
diff --git a/dev/core/test/com/google/gwt/dev/js/JsLiteralInternerTest.java b/dev/core/test/com/google/gwt/dev/js/JsLiteralInternerTest.java
index 49da0a8..c6e631e 100644
--- a/dev/core/test/com/google/gwt/dev/js/JsLiteralInternerTest.java
+++ b/dev/core/test/com/google/gwt/dev/js/JsLiteralInternerTest.java
@@ -82,11 +82,10 @@
         String.format("var $intern_0=%1$s;var x=$intern_0,y=$intern_0+%2$s,z=%3$s;", AS_STRING,
             BS_STRING, CS_STRING));
 
-    // Regexes
+    // Regexes are not internalizable.
     checkTranslation(
         String.format("var x = %1$s, y = %1$s + %2$s, z = %3$s;", AS_REGEX, BS_REGEX, CS_REGEX),
-        String.format("var $intern_0=%1$s;var x=$intern_0,y=$intern_0+%2$s,z=%3$s;", AS_REGEX,
-            BS_REGEX, CS_REGEX));
+        String.format("var x=%1$s,y=%1$s+%2$s,z=%3$s;", AS_REGEX, BS_REGEX, CS_REGEX));
 
     // Arrays
     checkTranslation(
diff --git a/user/test/com/google/gwt/dev/jjs/test/CompilerMiscRegressionTest.java b/user/test/com/google/gwt/dev/jjs/test/CompilerMiscRegressionTest.java
index 35a4c42..ec62c9a 100644
--- a/user/test/com/google/gwt/dev/jjs/test/CompilerMiscRegressionTest.java
+++ b/user/test/com/google/gwt/dev/jjs/test/CompilerMiscRegressionTest.java
@@ -239,6 +239,20 @@
     assertEquals(2, MyEnum.B.getPriority());
   }
 
+  /**
+   * Tests that regexes are not incorrectly internalized.
+   *
+   * Test for issue 8865.
+   */
+  public native void testJavaScriptRegExps() /*-{
+    // Make regexes large enough so that the will be interned (if regex interning was enabled).
+    var regExp1 = /this is a string where the search/g;
+    var regExp2 = /this is a string where the search/g;
+    var str = "this is a string where the search occurs";
+    @junit.framework.Assert::assertEquals(ZZ)(
+       regExp1.test(str), regExp2.test(str));
+  }-*/;
+
   private static void assertEqualContents(float[] expected, float[] actual) {
 
     assertEquals("Array length mismatch", expected.length, actual.length);
