diff --git a/runtime/doc/term.txt b/runtime/doc/term.txt
index f7b65ea..50ba187 100644
--- a/runtime/doc/term.txt
+++ b/runtime/doc/term.txt
@@ -294,6 +294,26 @@
 starts with CSI, it assumes that the terminal is in 8-bit mode and will
 convert all key sequences to their 8-bit variants.
 
+						*xterm-kitty* *kitty-terminal*
+The Kitty terminal is a special case.  Mainly because it works different from
+most other terminals, but also because, instead of trying the fit in and make
+it behave like other terminals by default, it dictates how applications need
+to work when using Kitty.  This makes it very difficult for Vim to work in a
+Kitty terminal.  Some exceptions have been hard coded, but it is not at all
+nice to have to make exceptions for one specific terminal.
+
+One of the problems is that the value for $TERM is set to "xterm-kitty".  For
+Vim this is an indication that the terminal is xterm-compatible and the
+builtin xterm termcap entries should be used.  Many other terminals depend on
+this.  However, Kitty is not fully xterm compatible.  The author suggested to
+ignore the "xterm-" prefix and use the terminfo entry anyway, but that
+conflicts with what is needed for other terminals.  Therefore Vim removes the
+"xterm-" prefix from "xterm-kitty" when it comes from $TERM.
+
+Note that using the kitty keyboard protocol is a separate feature, see
+|kitty-keyboard-protocol|.
+
+
 ==============================================================================
 2. Terminal options		*terminal-options* *termcap-options* *E436*
 
diff --git a/src/term.c b/src/term.c
index 7483974..7a70af4 100644
--- a/src/term.c
+++ b/src/term.c
@@ -2071,6 +2071,12 @@
     else
 	T_CCS = empty_option;
 
+    // Special case: "kitty" does not normally have a "RV" entry in terminfo,
+    // but we need to request the version for several other things to work.
+    if (strstr((char *)term, "kitty") != NULL
+					   && (T_CRV == NULL || *T_CRV == NUL))
+	T_CRV = (char_u *)"\033[>c";
+
 #ifdef UNIX
 /*
  * Any "stty" settings override the default for t_kb from the termcap.
@@ -2599,15 +2605,34 @@
     void
 termcapinit(char_u *name)
 {
-    char_u	*term;
+    char_u	*term = name;
 
-    if (name != NULL && *name == NUL)
-	name = NULL;	    // empty name is equal to no name
-    term = name;
+    if (term != NULL && *term == NUL)
+	term = NULL;	    // empty name is equal to no name
 
 #ifndef MSWIN
+    char_u	*tofree = NULL;
     if (term == NULL)
+    {
 	term = mch_getenv((char_u *)"TERM");
+
+	// "xterm-kitty" is used for Kitty, but it is not actually compatible
+	// with xterm.  Remove the "xterm-" part to avoid trouble.
+	if (term != NULL && STRNCMP(term, "xterm-kitty", 11) == 0)
+	{
+#ifdef FEAT_EVAL
+	    ch_log(NULL, "Removing xterm- prefix from terminal name %s", term);
+#endif
+	    if (p_verbose > 0)
+	    {
+		verbose_enter();
+		smsg(_("Removing xterm- prefix from terminal name %s"), term);
+		verbose_leave();
+	    }
+	    term = vim_strsave(term + 6);
+	    tofree = term;
+	}
+    }
 #endif
     if (term == NULL || *term == NUL)
 	term = DEFAULT_TERM;
@@ -2617,10 +2642,12 @@
     set_string_default("term", term);
     set_string_default("ttytype", term);
 
-    /*
-     * Avoid using "term" here, because the next mch_getenv() may overwrite it.
-     */
+    // Avoid using "term" here, because the next mch_getenv() may overwrite it.
     set_termname(T_NAME != NULL ? T_NAME : term);
+
+#ifndef MSWIN
+    vim_free(tofree);
+#endif
 }
 
 /*
@@ -4999,6 +5026,9 @@
 	{
 	    term_props[TPR_KITTY].tpr_status = TPR_YES;
 	    term_props[TPR_KITTY].tpr_set_by_termresponse = TRUE;
+
+	    // Kitty can handle SGR mouse reporting.
+	    term_props[TPR_MOUSE].tpr_status = TPR_MOUSE_SGR;
 	}
 
 	// GNU screen sends 83;30600;0, 83;40500;0, etc.
diff --git a/src/version.c b/src/version.c
index 91313cb..0fbc657 100644
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1073,
+/**/
     1072,
 /**/
     1071,
