diff --git a/src/term.c b/src/term.c
index 85292db..7460be9 100644
--- a/src/term.c
+++ b/src/term.c
@@ -4496,6 +4496,8 @@
 		/* eat it when at least one digit and ending in 'c' */
 		if (*T_CRV != NUL && i > 2 + (tp[0] != CSI) && tp[i] == 'c')
 		{
+		    int version = col;
+
 		    LOG_TR("Received CRV response");
 		    crv_status = STATUS_GOT;
 # ifdef FEAT_AUTOCMD
@@ -4508,10 +4510,11 @@
 			switch_to_8bit();
 
 		    /* rxvt sends its version number: "20703" is 2.7.3.
+		     * Screen sends 40500.
 		     * Ignore it for when the user has set 'term' to xterm,
 		     * even though it's an rxvt. */
-		    if (col > 20000)
-			col = 0;
+		    if (version > 20000)
+			version = 0;
 
 		    if (tp[1 + (tp[0] != CSI)] == '>' && semicols == 2)
 		    {
@@ -4522,19 +4525,19 @@
 			if (!option_was_set((char_u *)"ttym"))
 			{
 # ifdef TTYM_SGR
-			    if (col >= 277)
+			    if (version >= 277)
 				set_option_value((char_u *)"ttym", 0L,
 							  (char_u *)"sgr", 0);
 			    else
 # endif
 			    /* if xterm version >= 95 use mouse dragging */
-			    if (col >= 95)
+			    if (version >= 95)
 				set_option_value((char_u *)"ttym", 0L,
 						       (char_u *)"xterm2", 0);
 			}
 
 			/* if xterm version >= 141 try to get termcap codes */
-			if (col >= 141)
+			if (version >= 141)
 			{
 			    LOG_TR("Enable checking for XT codes");
 			    check_for_codes = TRUE;
@@ -4543,7 +4546,7 @@
 			}
 
 			/* libvterm sends 0;100;0 */
-			if (col == 100
+			if (version == 100
 				&& STRNCMP(tp + extra - 2, "0;100;0c", 8) == 0)
 			{
 			    /* If run from Vim $COLORS is set to the number of
@@ -4558,24 +4561,25 @@
 			 * compatible. */
 #  ifdef MACOS
 			/* Mac Terminal.app sends 1;95;0 */
-			if (col == 95
+			if (version == 95
 				&& STRNCMP(tp + extra - 2, "1;95;0c", 7) == 0)
 			    is_not_xterm = TRUE;
 #  endif
 			/* Gnome terminal sends 1;3801;0 or 1;4402;0.
 			 * xfce4-terminal sends 1;2802;0.
+			 * screen sends 83;40500;0
 			 * Assuming any version number over 2800 is not an
-			 * xterm. */
+			 * xterm (without the limit for rxvt and screen). */
 			if (col >= 2800)
 			    is_not_xterm = TRUE;
 
 			/* PuTTY sends 0;136;0 */
-			if (col == 136
+			if (version == 136
 				&& STRNCMP(tp + extra - 2, "0;136;0c", 8) == 0)
 			    is_not_xterm = TRUE;
 
 			/* Konsole sends 0;115;0 */
-			if (col == 115
+			if (version == 115
 				&& STRNCMP(tp + extra - 2, "0;115;0c", 8) == 0)
 			    is_not_xterm = TRUE;
 
