updated for version 7.4.305
Problem:    Making 'ttymouse' empty after the xterm version was requested
            causes problems. (Elijah Griffin)
Solution:   Do not check for DEC mouse sequences when the xterm version was
            requested.  Also don't request the xterm version when DEC mouse
            was enabled.
diff --git a/src/os_unix.c b/src/os_unix.c
index 65ce685..78e9914 100644
--- a/src/os_unix.c
+++ b/src/os_unix.c
@@ -3667,6 +3667,8 @@
     void
 check_mouse_termcode()
 {
+    xterm_conflict_mouse = FALSE;
+
 # ifdef FEAT_MOUSE_XTERM
     if (use_xterm_mouse()
 # ifdef FEAT_MOUSE_URXVT
@@ -3711,7 +3713,7 @@
 # endif
 
 # ifdef FEAT_MOUSE_JSB
-    /* conflicts with xterm mouse: "\033[" and "\033[M" ??? */
+    /* There is no conflict, but it was disabled for xterm before. */
     if (!use_xterm_mouse()
 #  ifdef FEAT_GUI
 	    && !gui.in_use
@@ -3738,32 +3740,40 @@
 # endif
 
 # ifdef FEAT_MOUSE_DEC
-    /* conflicts with xterm mouse: "\033[" and "\033[M" */
-    if (!use_xterm_mouse()
+    /* Conflicts with xterm mouse: "\033[" and "\033[M".
+     * Also conflicts with the xterm termresponse, skip this if it was
+     * requested already. */
+    if (!use_xterm_mouse() && !did_request_esc_sequence()
 #  ifdef FEAT_GUI
 	    && !gui.in_use
 #  endif
 	    )
+    {
 	set_mouse_termcode(KS_DEC_MOUSE, (char_u *)(term_is_8bit(T_NAME)
 		     ? IF_EB("\233", CSI_STR) : IF_EB("\033[", ESC_STR "[")));
+	xterm_conflict_mouse = TRUE;
+    }
     else
 	del_mouse_termcode(KS_DEC_MOUSE);
 # endif
 # ifdef FEAT_MOUSE_PTERM
     /* same as the dec mouse */
-    if (!use_xterm_mouse()
+    if (!use_xterm_mouse() && !did_request_esc_sequence()
 #  ifdef FEAT_GUI
 	    && !gui.in_use
 #  endif
 	    )
+    {
 	set_mouse_termcode(KS_PTERM_MOUSE,
 				      (char_u *) IF_EB("\033[", ESC_STR "["));
+	xterm_conflict_mouse = TRUE;
+    }
     else
 	del_mouse_termcode(KS_PTERM_MOUSE);
 # endif
 # ifdef FEAT_MOUSE_URXVT
     /* same as the dec mouse */
-    if (use_xterm_mouse() == 3
+    if (use_xterm_mouse() == 3 && !did_request_esc_sequence()
 #  ifdef FEAT_GUI
 	    && !gui.in_use
 #  endif
@@ -3778,6 +3788,7 @@
 	    mch_setmouse(FALSE);
 	    setmouse();
 	}
+	xterm_conflict_mouse = TRUE;
     }
     else
 	del_mouse_termcode(KS_URXVT_MOUSE);