diff --git a/src/Makefile b/src/Makefile
index c43eb07..304a751 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -201,6 +201,7 @@
 #SunOS 4.1.x			     +X11 -GUI		5.1b (J) Bram Moolenaar
 #SunOS 4.1.3_U1 (sun4c) gcc	     +X11 +GUI Athena	5.0w (J) Darren Hiebert
 #SUPER-UX 6.2 (NEC SX-4) cc	     +X11R6 Motif,Athena4.6b (P) Lennart Schultz
+#Tandem/NSK                                                  (c) Matthew Woehlke
 #Unisys 6035	      cc	     +X11 Motif		5.3  (8) Glauber Ribeiro
 #ESIX V4.2	      cc	     +X11		6.0  (a) Reinhard Wobst
 #Mac OS X 10.[23]     gcc	     Carbon		6.2  (x) Bram Moolenaar
@@ -251,6 +252,7 @@
 # (a)  See line with EXTRA_LIBS below.
 # (b)  When using gcc with the Solaris linker, make sure you don't use GNU
 #      strip, otherwise the binary may not run: "Cannot find ELF".
+# (c)  Add -lfloss to EXTRA_LIBS, see below.
 # (x)  When you get warnings for precompiled header files, run
 #      "sudo fixPrecomps".  Also see CONF_OPT_DARWIN below.
 # }}}
@@ -794,6 +796,9 @@
 ### (a)  ESIX V4.2 (Reinhard Wobst)
 #EXTRA_LIBS = -lnsl -lsocket -lgen -lXIM -lXmu -lXext
 
+### (c)  Tandem/NSK (Matthew Woehlke)
+#EXTRA_LIBS = -lfloss
+
 ### If you want to use ncurses library instead of the automatically found one
 ### after changing this, you need to do "make reconfig".
 #CONF_TERM_LIB = --with-tlib=ncurses
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index 1bb7ba0..80ac3f9 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -1772,7 +1772,8 @@
 	 */
 	st_old.st_dev = st_old.st_ino = 0;
 	st_old.st_mode = 0600;
-	if (mch_stat((char *)fname, &st_old) == 0 && getuid()
+	if (mch_stat((char *)fname, &st_old) == 0
+		&& getuid() != ROOT_UID
 		&& !(st_old.st_uid == getuid()
 			? (st_old.st_mode & 0200)
 			: (st_old.st_gid == getgid()
diff --git a/src/fileio.c b/src/fileio.c
index b4a8e9a..20406bb 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -1122,7 +1122,7 @@
 	    if (!skip_read)
 	    {
 #if SIZEOF_INT > 2
-# ifdef __TANDEM
+# if defined(SSIZE_MAX) && (SSIZE_MAX < 0x10000L)
 		size = SSIZE_MAX;		    /* use max I/O size, 52K */
 # else
 		size = 0x10000L;		    /* use buffer >= 64K */
diff --git a/src/main.c b/src/main.c
index 4791c68..3c37698 100644
--- a/src/main.c
+++ b/src/main.c
@@ -3280,7 +3280,7 @@
 #  ifdef FEAT_GUI
 		(gui.in_use
 #   ifdef UNIX
-		 && getuid() != 0
+		 && getuid() != ROOT_UID
 #   endif
 		) ||
 #  endif
diff --git a/src/os_unix.c b/src/os_unix.c
index 639ef31..5e8f0cb 100644
--- a/src/os_unix.c
+++ b/src/os_unix.c
@@ -25,7 +25,7 @@
  * Don't use it for the Mac, it causes a warning for precompiled headers.
  * TODO: use a configure check for precompiled headers?
  */
-#ifndef __APPLE__
+#if !defined(__APPLE__) && !defined(__TANDEM)
 # define select select_declared_wrong
 #endif
 
@@ -48,9 +48,11 @@
 /*
  * Use this prototype for select, some include files have a wrong prototype
  */
-#undef select
-#ifdef __BEOS__
-# define select	beos_select
+#ifndef __TANDEM
+# undef select
+# ifdef __BEOS__
+#  define select	beos_select
+# endif
 #endif
 
 #if defined(HAVE_SELECT)
@@ -4770,6 +4772,14 @@
 # else
 	ret = select(maxfd + 1, &rfds, NULL, &efds, tvp);
 # endif
+# ifdef __TANDEM
+	if (ret == -1 && errno == ENOTSUP)
+	{
+	    FD_ZERO(&rfds);
+	    FD_ZERO(&efds);
+	    ret = 0;
+	}
+#endif
 # ifdef FEAT_MZSCHEME
 	if (ret == 0 && mzquantum_used)
 	    /* loop if MzThreads must be scheduled and timeout occured */
diff --git a/src/osdef1.h.in b/src/osdef1.h.in
index fac78e0..bdc6247 100644
--- a/src/osdef1.h.in
+++ b/src/osdef1.h.in
@@ -98,7 +98,9 @@
 
 #ifndef USE_SYSTEM
 extern int	fork __ARGS((void));
+# ifndef __TANDEM
 extern int	execvp __ARGS((const char *, const char **));
+# endif
 extern int	wait __ARGS((int *)); /* will this break things ...? */
 extern int	waitpid __ARGS((pid_t, int *, int));
 #endif
@@ -123,10 +125,12 @@
 
 extern int	kill __ARGS((int, int));
 
+#ifndef __TANDEM
 extern int	access __ARGS((char *, int));
+#endif
 extern int	fsync __ARGS((int));
 extern int	fchown __ARGS((int, int, int));
-#if defined(HAVE_GETCWD) && !defined(sun)
+#if defined(HAVE_GETCWD) && !defined(sun) && !defined(__TANDEM)
 extern char	*getcwd __ARGS((char *, int));
 #else
 extern char	*getwd __ARGS((char *));
diff --git a/src/osdef2.h.in b/src/osdef2.h.in
index cca78b0..f2f9776 100644
--- a/src/osdef2.h.in
+++ b/src/osdef2.h.in
@@ -11,13 +11,19 @@
 extern int	setenv __ARGS((char *, char *, int));
 extern int	putenv __ARGS((const char *));
 
+#ifndef __TANDEM
 extern int	gethostname __ARGS((char *, int));
+#endif
 extern void	perror __ARGS((char *));
 
+#ifndef __TANDEM
 extern int	sleep __ARGS((int));
+#endif
 extern int	usleep __ARGS((unsigned int));
 extern unsigned int	alarm __ARGS((unsigned int));
+#ifndef __TANDEM
 extern int	chdir __ARGS((char *));
+#endif
 extern int	fchdir __ARGS((int));
 #ifndef stat	/* could be redefined to stat64() */
 extern int	stat __ARGS((const char *, struct stat *));
@@ -28,8 +34,10 @@
 extern int	fstat __ARGS((int, struct stat *));
 extern int	open __ARGS((const char *, int, ...));
 extern int	close __ARGS((int));
+#ifndef __TANDEM
 extern int	read __ARGS((int, char *, size_t));
 extern int	write __ARGS((int, char *, size_t));
+#endif
 extern int	pipe __ARGS((int *));
 extern off_t	lseek __ARGS((int, off_t, int));
 extern void	sync __ARGS((void));
diff --git a/src/pty.c b/src/pty.c
index 8d177d7..a340038 100644
--- a/src/pty.c
+++ b/src/pty.c
@@ -330,7 +330,7 @@
     if ((f = open("/dev/ptc", O_RDWR | O_NOCTTY | O_EXTRA)) < 0)
 	return -1;
     strncpy(TtyName, ttyname(f), sizeof(TtyName));
-    if (geteuid() && mch_access(TtyName, R_OK | W_OK))
+    if (geteuid() != ROOT_UID && mch_access(TtyName, R_OK | W_OK))
     {
 	close(f);
 	return -1;
@@ -394,7 +394,7 @@
 	    q[0] = *l;
 	    q[1] = *d;
 #ifndef MACOS
-	    if (geteuid() && mch_access(TtyName, R_OK | W_OK))
+	    if (geteuid() != ROOT_UID && mch_access(TtyName, R_OK | W_OK))
 	    {
 		close(f);
 		continue;
diff --git a/src/version.c b/src/version.c
index ce13924..864228e 100644
--- a/src/version.c
+++ b/src/version.c
@@ -667,6 +667,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    202,
+/**/
     201,
 /**/
     200,
diff --git a/src/vim.h b/src/vim.h
index d69fe41..36ff27a 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -50,6 +50,15 @@
 # endif
 #endif
 
+/* user ID of root is usually zero, but not for everybody */
+#ifdef __TANDEM
+# define _TANDEM_SOURCE
+# include <floss.h>
+# define ROOT_UID 65535
+#else
+# define ROOT_UID 0
+#endif
+
 #ifdef __EMX__		/* hand-edited config.h for OS/2 with EMX */
 # include "os_os2_cfg.h"
 #endif
