diff --git a/src/term.c b/src/term.c
index d114be9..ff1adc9 100644
--- a/src/term.c
+++ b/src/term.c
@@ -2843,7 +2843,7 @@
 static int winpos_y = -1;
 static int did_request_winpos = 0;
 
-#  if (defined(FEAT_EVAL) && defined(HAVE_TGETENT)) || defined(PROTO)
+# if defined(FEAT_EVAL) || defined(FEAT_TERMINAL) || defined(PROTO)
 /*
  * Try getting the Vim window position from the terminal.
  * Returns OK or FAIL.
@@ -4858,7 +4858,7 @@
 
 		/*
 		 * Check for a window position response from the terminal:
-		 *       {lead}3;{x}:{y}t
+		 *       {lead}3;{x};{y}t
 		 */
 		else if (did_request_winpos
 			    && ((len >= 4 && tp[0] == ESC && tp[1] == '[')
@@ -4925,11 +4925,11 @@
 			if (i - j >= 21 && STRNCMP(tp + j + 3, "rgb:", 4) == 0
 			    && tp[j + 11] == '/' && tp[j + 16] == '/')
 			{
-#ifdef FEAT_TERMINAL
+# ifdef FEAT_TERMINAL
 			    int rval = hexhex2nr(tp + j + 7);
 			    int gval = hexhex2nr(tp + j + 12);
 			    int bval = hexhex2nr(tp + j + 17);
-#endif
+# endif
 			    if (is_bg)
 			    {
 				char *newval = (3 * '6' < tp[j+7] + tp[j+12]
@@ -4937,11 +4937,11 @@
 
 				LOG_TR(("Received RBG response: %s", tp));
 				rbg_status = STATUS_GOT;
-#ifdef FEAT_TERMINAL
+# ifdef FEAT_TERMINAL
 				bg_r = rval;
 				bg_g = gval;
 				bg_b = bval;
-#endif
+# endif
 				if (!option_was_set((char_u *)"bg")
 						  && STRCMP(p_bg, newval) != 0)
 				{
@@ -4952,7 +4952,7 @@
 				    redraw_asap(CLEAR);
 				}
 			    }
-#ifdef FEAT_TERMINAL
+# ifdef FEAT_TERMINAL
 			    else
 			    {
 				LOG_TR(("Received RFG response: %s", tp));
@@ -4961,7 +4961,7 @@
 				fg_g = gval;
 				fg_b = bval;
 			    }
-#endif
+# endif
 			}
 
 			/* got finished code: consume it */
diff --git a/src/terminal.c b/src/terminal.c
index 34dea03..4ff28b8 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -3866,8 +3866,11 @@
     if (command != 't' || argcount != 1 || args[0] != 13)
 	return 0; // not handled
 
-    // When getting the window position fails it results in zero/zero.
+    // When getting the window position is not possible or it fails it results
+    // in zero/zero.
+#if defined(FEAT_GUI) || (defined(HAVE_TGETENT) && defined(FEAT_TERMRESPONSE))
     (void)ui_get_winpos(&x, &y, (varnumber_T)100);
+#endif
 
     FOR_ALL_WINDOWS(wp)
 	if (wp->w_buffer == term->tl_buffer)
diff --git a/src/testdir/test_terminal.vim b/src/testdir/test_terminal.vim
index 4c84a43..1f99478 100644
--- a/src/testdir/test_terminal.vim
+++ b/src/testdir/test_terminal.vim
@@ -1889,6 +1889,11 @@
 endfunc
 
 func Test_terminal_getwinpos()
+  " does not work in the MS-Windows console
+  if has('win32') && !has('gui')
+    return
+  endif
+
   " split, go to the bottom-right window
   split
   wincmd j
diff --git a/src/ui.c b/src/ui.c
index f78c570..7214876 100644
--- a/src/ui.c
+++ b/src/ui.c
@@ -627,10 +627,9 @@
     }
 }
 
-#if (defined(FEAT_EVAL) \
+#if ((defined(FEAT_EVAL) || defined(FEAT_TERMINAL)) \
 	    && (defined(FEAT_GUI) \
 		|| (defined(HAVE_TGETENT) && defined(FEAT_TERMRESPONSE)))) \
-	|| defined(FEAT_TERMINAL) \
 	|| defined(PROTO)
 /*
  * Get the window position in pixels, if possible.
@@ -645,6 +644,8 @@
 # endif
 # if defined(HAVE_TGETENT) && defined(FEAT_TERMRESPONSE)
     return term_get_winpos(x, y, timeout);
+# else
+    return FAIL;
 # endif
 }
 #endif
diff --git a/src/version.c b/src/version.c
index 9115a00..dfc986e 100644
--- a/src/version.c
+++ b/src/version.c
@@ -772,6 +772,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1127,
+/**/
     1126,
 /**/
     1125,
