diff --git a/src/wp-includes/default-filters.php b/src/wp-includes/default-filters.php
index 57e02d6..e0fafaa 100644
--- a/src/wp-includes/default-filters.php
+++ b/src/wp-includes/default-filters.php
@@ -217,6 +217,7 @@ add_action( 'template_redirect',   'wp_shortlink_header',             11, 0 );
 add_action( 'wp_print_footer_scripts', '_wp_footer_scripts'                 );
 add_action( 'init',                'check_theme_switched',            99    );
 add_action( 'after_switch_theme',  '_wp_sidebars_changed'                   );
+add_action( 'wp_print_scripts',    'wp_save_early_comment_reply_clicks', 99 );
 
 if ( isset( $_GET['replytocom'] ) )
     add_action( 'wp_head', 'wp_no_robots' );
diff --git a/src/wp-includes/script-loader.php b/src/wp-includes/script-loader.php
index 97fb681..29e1dcd 100644
--- a/src/wp-includes/script-loader.php
+++ b/src/wp-includes/script-loader.php
@@ -746,6 +746,26 @@ function wp_just_in_time_script_localization() {
 }
 
 /**
+ * Save clicks on a comment reply link before the script has loaded
+ *
+ * On long comment threads, it's possible a visitor will click a reply link
+ * before the comment-reply script loads. React gracefully.
+ *
+ * @since 4.2
+ */
+function wp_save_early_comment_reply_clicks() {
+
+	// check if comment reply script is enqueued
+	if ( wp_script_is( 'comment-reply' ) ) {
+		echo "<script>\n";
+		echo "var addComment = { moveForm : function() { return true; } }\n";
+		echo "</script>\n";
+	}
+
+}
+
+
+/**
  * Administration Screen CSS for changing the styles.
  *
  * If installing the 'wp-admin/' directory will be replaced with './'.
