diff --git c/lib/openpty.c i/lib/openpty.c
index c398db5..d61d5ba 100644
--- c/lib/openpty.c
+++ i/lib/openpty.c
@@ -32,6 +32,21 @@ rpl_openpty (int *amaster, int *aslave, char *name,
                   (struct winsize *) winp);
 }

+#elif (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ /* mingw */
+
+# include <errno.h>
+
+int
+openpty (int *amaster _GL_UNUSED, int *aslave _GL_UNUSED,
+         char *name _GL_UNUSED,
+         struct termios const *termp _GL_UNUSED,
+         struct winsize const *winp _GL_UNUSED)
+{
+  /* Mingw lacks pseudo-terminals altogether.  */
+  errno = ENOSYS;
+  return -1;
+}
+
 #else /* AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 10, mingw */

 # include <fcntl.h>