diff --git a/src/globals.h b/src/globals.h
index 009165d..1090f35 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -1396,12 +1396,12 @@
     MOKS_OFF,
     // Used when receiving the state and the level is two.
     MOKS_ENABLED,
-    // Used after outputting t_KE when the state was MOKS_ENABLED.  We do not
-    // really know if t_KE actually disabled the protocol, the following t_KI
+    // Used after outputting t_TE when the state was MOKS_ENABLED.  We do not
+    // really know if t_TE actually disabled the protocol, the following t_TI
     // is expected to request the state, but the response may come only later.
     MOKS_DISABLED,
-    // Used after outputting t_KE when the state was not MOKS_ENABLED.
-    MOKS_AFTER_T_KE,
+    // Used after outputting t_TE when the state was not MOKS_ENABLED.
+    MOKS_AFTER_T_TE,
 } mokstate_T;
 
 // Set when a response to XTQMODKEYS was received.  Only works for xterm
@@ -1416,12 +1416,12 @@
     KKPS_OFF,
     // Used when receiving the state and the flags are non-zero.
     KKPS_ENABLED,
-    // Used after outputting t_KE when the state was KKPS_ENABLED.  We do not
-    // really know if t_KE actually disabled the protocol, the following t_KI
+    // Used after outputting t_TE when the state was KKPS_ENABLED.  We do not
+    // really know if t_TE actually disabled the protocol, the following t_TI
     // is expected to request the state, but the response may come only later.
     KKPS_DISABLED,
-    // Used after outputting t_KE when the state was not KKPS_ENABLED.
-    KKPS_AFTER_T_KE,
+    // Used after outputting t_TE when the state was not KKPS_ENABLED.
+    KKPS_AFTER_T_TE,
 } kkpstate_T;
 
 EXTERN kkpstate_T kitty_protocol_state INIT(= KKPS_INITIAL);
diff --git a/src/map.c b/src/map.c
index 505994a..a856b88 100644
--- a/src/map.c
+++ b/src/map.c
@@ -326,7 +326,7 @@
 		case MOKS_OFF: name = _("Off"); break;
 		case MOKS_ENABLED: name = _("On"); break;
 		case MOKS_DISABLED: name = _("Disabled"); break;
-		case MOKS_AFTER_T_KE: name = _("Cleared"); break;
+		case MOKS_AFTER_T_TE: name = _("Cleared"); break;
 	    }
 
 	    char buf[200];
@@ -344,7 +344,7 @@
 		case KKPS_OFF: name = _("Off"); break;
 		case KKPS_ENABLED: name = _("On"); break;
 		case KKPS_DISABLED: name = _("Disabled"); break;
-		case KKPS_AFTER_T_KE: name = _("Cleared"); break;
+		case KKPS_AFTER_T_TE: name = _("Cleared"); break;
 	    }
 
 	    char buf[200];
diff --git a/src/term.c b/src/term.c
index 777c510..590c21c 100644
--- a/src/term.c
+++ b/src/term.c
@@ -3689,7 +3689,7 @@
 	    || modify_otherkeys_state == MOKS_DISABLED)
 	modify_otherkeys_state = MOKS_DISABLED;
     else if (modify_otherkeys_state != MOKS_INITIAL)
-	modify_otherkeys_state = MOKS_AFTER_T_KE;
+	modify_otherkeys_state = MOKS_AFTER_T_TE;
 
     // When the kitty keyboard protocol is enabled we expect t_TE to disable
     // it.  Remembering that it was detected to be enabled is useful in some
@@ -3700,7 +3700,7 @@
 	    || kitty_protocol_state == KKPS_DISABLED)
 	kitty_protocol_state = KKPS_DISABLED;
     else
-	kitty_protocol_state = KKPS_AFTER_T_KE;
+	kitty_protocol_state = KKPS_AFTER_T_TE;
 }
 
 static int send_t_RK = FALSE;
@@ -3892,8 +3892,18 @@
 	out_flush();
 	termcap_active = FALSE;
 
-	// Output t_te first, it may switch between main and alternate screen,
-	// and following codes may work on the active screen only.
+	// Output t_te before t_TE, t_te may switch between main and alternate
+	// screen and following codes may work on the active screen only.
+	//
+	// When using the Kitty keyboard protocol the main and alternate screen
+	// use a separate state.  If we are (or were) using the Kitty keyboard
+	// protocol and t_te is not empty (possibly switching screens) then
+	// output t_TE both before and after outputting t_te.
+	if (*T_TE != NUL && (kitty_protocol_state == KKPS_ENABLED
+				     || kitty_protocol_state == KKPS_DISABLED))
+	    out_str_t_TE();		// probably disables the kitty keyboard
+					// protocol
+
 	out_str(T_TE);			// stop termcap mode
 	cursor_on();			// just in case it is still off
 	out_str_t_TE();			// stop "raw" mode, modifyOtherKeys and
@@ -5158,7 +5168,7 @@
     if (trail != 'u'
 	    && (kitty_protocol_state == KKPS_INITIAL
 		|| kitty_protocol_state == KKPS_OFF
-		|| kitty_protocol_state == KKPS_AFTER_T_KE)
+		|| kitty_protocol_state == KKPS_AFTER_T_TE)
 	    && term_props[TPR_KITTY].tpr_status != TPR_YES)
     {
 #ifdef FEAT_EVAL
diff --git a/src/version.c b/src/version.c
index 140fa87..0d306cc 100644
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1065,
+/**/
     1064,
 /**/
     1063,
