diff --git a/src/jdk.jshell/share/classes/jdk/internal/jshell/tool/ConsoleIOContext.java b/src/jdk.jshell/share/classes/jdk/internal/jshell/tool/ConsoleIOContext.java
index 0d99cc3b0b2..610404b8738 100644
--- a/src/jdk.jshell/share/classes/jdk/internal/jshell/tool/ConsoleIOContext.java
+++ b/src/jdk.jshell/share/classes/jdk/internal/jshell/tool/ConsoleIOContext.java
@@ -833,6 +833,7 @@ class ConsoleIOContext extends IOContext {
         }
         it.remove();
         in.getHistory().add(source);
+        in.getHistory().resetIndex();
     }
 
     private static final long ESCAPE_TIMEOUT = 100;
diff --git a/test/langtools/jdk/jshell/HistoryUITest.java b/test/langtools/jdk/jshell/HistoryUITest.java
index 307c087409b..04b8e825862 100644
--- a/test/langtools/jdk/jshell/HistoryUITest.java
+++ b/test/langtools/jdk/jshell/HistoryUITest.java
@@ -23,7 +23,7 @@
 
 /**
  * @test
- * @bug 8178077
+ * @bug 8178077 8232856
  * @summary Check the UI behavior of editing history.
  * @modules
  *     jdk.compiler/com.sun.tools.javac.api
@@ -77,4 +77,16 @@ public class HistoryUITest extends UITesting {
         });
     }
 
+    public void testReRun() throws Exception {
+        doRunTest((inputSink, out) -> {
+            inputSink.write("System.err.println(\"RAN\");\n");
+            waitOutput(out, "RAN.*" + PROMPT);
+            inputSink.write("/!\n");
+            waitOutput(out, "RAN.*" + PROMPT);
+            inputSink.write(UP);
+            inputSink.write("\n");
+            waitOutput(out, "RAN.*" + PROMPT);
+        });
+    }
+
 }