diff --git a/src/evalfunc.c b/src/evalfunc.c
index 4521835..c85c334 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -5926,7 +5926,7 @@
 #ifdef FEAT_TERMGUICOLORS
 	"termguicolors",
 #endif
-#ifdef FEAT_TERMINAL
+#if defined(FEAT_TERMINAL) && !defined(WIN3264)
 	"terminal",
 #endif
 #ifdef TERMINFO
@@ -6134,6 +6134,10 @@
 	else if (STRICMP(name, "netbeans_enabled") == 0)
 	    n = netbeans_active();
 #endif
+#if defined(FEAT_TERMINAL) && defined(WIN3264)
+	else if (STRICMP(name, "terminal") == 0)
+	    n = terminal_enabled();
+#endif
     }
 
     rettv->vval.v_number = n;
diff --git a/src/proto/terminal.pro b/src/proto/terminal.pro
index 8f2bcd5..2b05d34 100644
--- a/src/proto/terminal.pro
+++ b/src/proto/terminal.pro
@@ -34,4 +34,5 @@
 void f_term_sendkeys(typval_T *argvars, typval_T *rettv);
 void f_term_start(typval_T *argvars, typval_T *rettv);
 void f_term_wait(typval_T *argvars, typval_T *rettv);
+int terminal_enabled(void);
 /* vim: set ft=c : */
diff --git a/src/terminal.c b/src/terminal.c
index c4fa847..d482d19 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -2709,12 +2709,14 @@
     }
 }
 
-# ifdef WIN3264
+# if defined(WIN3264) || defined(PROTO)
 
 /**************************************
  * 2. MS-Windows implementation.
  */
 
+#  ifndef PROTO
+
 #define WINPTY_SPAWN_FLAG_AUTO_SHUTDOWN 1ul
 #define WINPTY_SPAWN_FLAG_EXIT_AFTER_SHUTDOWN 2ull
 
@@ -2737,9 +2739,10 @@
 #define WINPTY_DLL "winpty.dll"
 
 static HINSTANCE hWinPtyDLL = NULL;
+#  endif
 
-    int
-dyn_winpty_init(void)
+    static int
+dyn_winpty_init(int verbose)
 {
     int i;
     static struct
@@ -2768,7 +2771,7 @@
 
     /* No need to initialize twice. */
     if (hWinPtyDLL)
-	return 1;
+	return OK;
     /* Load winpty.dll, prefer using the 'winptydll' option, fall back to just
      * winpty.dll. */
     if (*p_winptydll != NUL)
@@ -2777,8 +2780,10 @@
 	hWinPtyDLL = vimLoadLib(WINPTY_DLL);
     if (!hWinPtyDLL)
     {
-	EMSG2(_(e_loadlib), *p_winptydll != NUL ? p_winptydll : WINPTY_DLL);
-	return 0;
+	if (verbose)
+	    EMSG2(_(e_loadlib), *p_winptydll != NUL ? p_winptydll
+						       : (char_u *)WINPTY_DLL);
+	return FAIL;
     }
     for (i = 0; winpty_entry[i].name != NULL
 					 && winpty_entry[i].ptr != NULL; ++i)
@@ -2786,12 +2791,13 @@
 	if ((*winpty_entry[i].ptr = (FARPROC)GetProcAddress(hWinPtyDLL,
 					      winpty_entry[i].name)) == NULL)
 	{
-	    EMSG2(_(e_loadfunc), winpty_entry[i].name);
-	    return 0;
+	    if (verbose)
+		EMSG2(_(e_loadfunc), winpty_entry[i].name);
+	    return FAIL;
 	}
     }
 
-    return 1;
+    return OK;
 }
 
 /*
@@ -2813,7 +2819,7 @@
     garray_T	    ga;
     char_u	    *cmd;
 
-    if (!dyn_winpty_init())
+    if (dyn_winpty_init(TRUE) == FAIL)
 	return FAIL;
 
     if (argvar->v_type == VAR_STRING)
@@ -2977,6 +2983,13 @@
     winpty_set_size(term->tl_winpty, cols, rows, NULL);
 }
 
+    int
+terminal_enabled(void)
+{
+    return dyn_winpty_init(FALSE) == OK;
+}
+
+
 # else
 
 /**************************************
diff --git a/src/version.c b/src/version.c
index 5abfd17..545204c 100644
--- a/src/version.c
+++ b/src/version.c
@@ -770,6 +770,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    952,
+/**/
     951,
 /**/
     950,
