diff -ur /inetutils-1.3a/ftpd/ftpd.c inetutils-1.3a/ftpd/ftpd.c
--- /inetutils-1.3a/ftpd/ftpd.c	Sat Mar 01 02:39:25 1997
+++ inetutils-1.3a/ftpd/ftpd.c	Wed Aug 06 13:38:02 1997
@@ -363,8 +363,10 @@
 	(void) freopen(PATH_DEVNULL, "w", stderr);
 	(void) signal(SIGPIPE, lostconn);
 	(void) signal(SIGCHLD, SIG_IGN);
+#ifndef __CYGWIN32__
 	if ((int)signal(SIGURG, myoob) < 0)
 		syslog(LOG_ERR, "signal: %m");
+#endif
 
 	/* Try to handle urgent data inline */
 #ifdef SO_OOBINLINE
@@ -518,10 +520,12 @@
 	}
 
 	login_attempts = 0;		/* this time successful */
+#ifndef __CYGWIN32__
 	if (setegid((gid_t)pw->pw_gid) < 0) {
 		reply(550, "Can't set gid.");
 		return;
 	}
+#endif
 	(void) initgroups(pw->pw_name, pw->pw_gid);
 
 	/* open wtmp before chroot */
@@ -535,7 +539,7 @@
 		 * the old current directory will be accessible as "."
 		 * outside the new root!
 		 */
-		if (chroot(pw->pw_dir) < 0 || chdir("/") < 0) {
+		if (/*chroot(pw->pw_dir) < 0 ||*/ chdir("/") < 0) {
 			reply(550, "Can't set guest privileges.");
 			goto bad;
 		}
@@ -1267,7 +1271,7 @@
 	(void)fflush(stdout);
 	if (debug) {
 		syslog(LOG_DEBUG, "<--- %d ", n);
-		vsyslog(LOG_DEBUG, fmt, ap);
+		syslog(LOG_DEBUG, fmt, ap);
 	}
 }
 
@@ -1293,7 +1297,7 @@
 	(void)fflush(stdout);
 	if (debug) {
 		syslog(LOG_DEBUG, "<--- %d- ", n);
-		vsyslog(LOG_DEBUG, fmt, ap);
+		syslog(LOG_DEBUG, fmt, ap);
 	}
 }
 
diff -ur /inetutils-1.3a/inetd/inetd.c inetutils-1.3a/inetd/inetd.c
--- /inetutils-1.3a/inetd/inetd.c	Tue Feb 18 00:01:39 1997
+++ inetutils-1.3a/inetd/inetd.c	Wed Jul 30 13:38:17 1997
@@ -360,7 +360,14 @@
 		(void) sigblock(SIGBLOCK);
 #endif
 		while (nsock == 0)
+#ifdef __CYGWIN32__
+		  {
+		    sigset_t set=0;
+		    sigsuspend(&set);
+		  }
+#else
 		    sigpause(0L);
+#endif
 #ifdef HAVE_SIGACTION
 		{
 		  sigset_t empty;
@@ -513,6 +520,7 @@
 				close(ctrl);
 				dup2(0, 1);
 				dup2(0, 2);
+#ifndef __CYGWIN32__
 				if ((pwd = getpwnam(sep->se_user)) == NULL) {
 					syslog(LOG_ERR,
 					    "%s/%s: %s: No such user",
@@ -538,6 +546,7 @@
 						_exit(1);
 					}
 				}
+#endif
 				execv(sep->se_server, sep->se_argv);
 				if (sep->se_socktype != SOCK_STREAM)
 					recv(0, buf, sizeof (buf), 0);
@@ -602,12 +611,14 @@
 	for (sep = servtab; sep; sep = sep->se_next)
 		sep->se_checked = 0;
 	while (cp = getconfigent()) {
+#ifndef __CYGWIN32__
 		if ((pwd = getpwnam(cp->se_user)) == NULL) {
 			syslog(LOG_ERR,
 				"%s/%s: No such user '%s', service ignored",
 				cp->se_service, cp->se_proto, cp->se_user);
 			continue;
 		}
+#endif
 		for (sep = servtab; sep; sep = sep->se_next)
 			if (strcmp(sep->se_service, cp->se_service) == 0 &&
 			    strcmp(sep->se_proto, cp->se_proto) == 0)
@@ -1060,6 +1071,7 @@
 	struct sockaddr_in sin;
 	char buf[80];
 
+return;
 	cp = Argv[0];
 	size = sizeof(sin);
 	if (getpeername(s, (struct sockaddr *)&sin, &size) == 0)
diff -ur /inetutils-1.3a/libinetutils/iruserok.c inetutils-1.3a/libinetutils/iruserok.c
--- /inetutils-1.3a/libinetutils/iruserok.c	Fri Feb 21 23:21:59 1997
+++ inetutils-1.3a/libinetutils/iruserok.c	Thu Jul 24 15:56:26 1997
@@ -75,7 +75,7 @@
 #  include <time.h>
 # endif
 #endif
-#include <resolv.h>
+//#include <resolv.h>
 
 int     __check_rhosts_file = 1;
 char    *__rcmd_errstr;
diff -ur /inetutils-1.3a/rexecd/rexecd.c inetutils-1.3a/rexecd/rexecd.c
--- /inetutils-1.3a/rexecd/rexecd.c	Wed Feb 19 05:11:05 1997
+++ inetutils-1.3a/rexecd/rexecd.c	Tue Sep 16 13:15:34 1997
@@ -121,6 +121,10 @@
 	int f;
 	struct sockaddr_in *fromp;
 {
+#ifdef __CYGWIN32__
+#include <windows.h>
+	HANDLE hToken;
+#endif
 	char *cmdbuf, *cp, *namep;
 	char *user, *pass;
 	struct passwd *pwd;
@@ -179,6 +183,7 @@
 		exit(1);
 	}
 	endpwent();
+#ifndef __CYGWIN32__
 	if (*pwd->pw_passwd != '\0') {
 		namep = CRYPT (pass, pwd->pw_passwd);
 		if (strcmp(namep, pwd->pw_passwd)) {
@@ -186,6 +191,13 @@
 			exit(1);
 		}
 	}
+#else
+	if (!LogonUser(user, NULL, pass, LOGON32_LOGON_INTERACTIVE,
+				LOGON32_PROVIDER_DEFAULT, &hToken)) {
+		error("Password incorrect.\n");
+		exit(1);
+	}
+#endif
 	if (chdir(pwd->pw_dir) < 0) {
 		error("No remote directory.\n");
 		exit(1);
@@ -238,7 +250,7 @@
 	initgroups(pwd->pw_name, pwd->pw_gid);
 	(void) setuid((uid_t)pwd->pw_uid);
 	(void)strcat(path, PATH_DEFPATH);
-	environ = envinit;
+//	environ = envinit;
 	strncat(homedir, pwd->pw_dir, sizeof(homedir)-6);
 	strncat(shell, pwd->pw_shell, sizeof(shell)-7);
 	strncat(username, pwd->pw_name, sizeof(username)-6);
@@ -247,7 +259,11 @@
 		cp++;
 	else
 		cp = pwd->pw_shell;
+#ifndef __CYGWIN32__
 	execl(pwd->pw_shell, cp, "-c", cmdbuf, 0);
+#else
+	sexecl(hToken, pwd->pw_shell, cp, "-c", cmdbuf, 0);
+#endif
 	perror(pwd->pw_shell);
 	exit(1);
 }
diff -ur /inetutils-1.3a/rlogin/rlogin.c inetutils-1.3a/rlogin/rlogin.c
--- /inetutils-1.3a/rlogin/rlogin.c	Mon Feb 17 05:42:33 1997
+++ inetutils-1.3a/rlogin/rlogin.c	Tue Jul 29 17:50:56 1997
@@ -314,7 +314,9 @@
 
 	/* will use SIGUSR1 for window size hack, so hold it off */
 	sigemptyset (&smask);
+#ifndef __CYGWIN32__
 	sigaddset (&smask, SIGURG);
+#endif
 	sigaddset (&smask, SIGUSR1);
 	sigprocmask (SIG_SETMASK, &smask, &smask);
 
@@ -324,7 +326,9 @@
 	 * discarded. Note that these routines will be ready to get
 	 * a signal by the time that they are unblocked below.
 	 */
+#ifndef __CYGWIN32__
 	setsig (SIGURG, copytochild);
+#endif
 	setsig (SIGUSR1, writeroob);
 
 #ifdef KERBEROS
@@ -523,7 +527,9 @@
 {
 	if (dosigwinch == 0) {
 		sendwindow();
+#ifndef __CYGWIN32__
 		setsig (SIGWINCH, sigwinch);
+#endif
 	}
 	dosigwinch = 1;
 }
@@ -700,8 +706,10 @@
 	obuf[3] = 's';
 	wp->ws_row = htons(winsize.ws_row);
 	wp->ws_col = htons(winsize.ws_col);
+#ifndef __CYGWIN32__
 	wp->ws_xpixel = htons(winsize.ws_xpixel);
 	wp->ws_ypixel = htons(winsize.ws_ypixel);
+#endif
 
 #ifdef CRYPT
 #ifdef KERBEROS
@@ -828,7 +836,9 @@
 #endif
 
 	setsig (SIGTTOU, SIG_IGN);
+#ifndef __CYGWIN32__
 	setsig (SIGURG, oob);
+#endif
 
 	ppid = getppid();
 	(void)fcntl(rem, F_SETOWN, pid);
@@ -916,7 +926,9 @@
 	int signo;
 {
 
+#ifndef __CYGWIN32__
 	(void)kill(child, SIGURG);
+#endif
 }
 
 void
diff -ur /inetutils-1.3a/talk/io.c inetutils-1.3a/talk/io.c
--- /inetutils-1.3a/talk/io.c	Mon Feb 17 05:35:56 1997
+++ inetutils-1.3a/talk/io.c	Tue Jul 29 17:57:41 1997
@@ -120,7 +120,9 @@
 			 * We can't make the tty non_blocking, because
 			 * curses's output routines would screw up
 			 */
+#ifndef __CYGWIN32__
 			ioctl(0, FIONREAD, (struct sgttyb *) &nb);
+#endif
 			nb = read(0, buf, nb);
 			display(&my_win, buf, nb);
 			/* might lose data here because sockt is non-blocking */
diff -ur /inetutils-1.3a/talk/msgs.c inetutils-1.3a/talk/msgs.c
--- /inetutils-1.3a/talk/msgs.c	Mon Feb 17 05:35:56 1997
+++ inetutils-1.3a/talk/msgs.c	Tue Jul 29 18:02:39 1997
@@ -90,3 +90,13 @@
 	setitimer(ITIMER_REAL, &itimer, (struct itimerval *)0);
 	signal(SIGALRM, SIG_DFL);
 }
+
+#ifdef __CYGWIN32__
+void timerclear (tv)
+struct timeval *tv;
+{
+	tv->tv_sec = 0;
+	tv->tv_usec = 0;
+}
+#endif
+
Only in inetutils-1.3a/talkd: Makefile
diff -ur /inetutils-1.3a/talkd/process.c inetutils-1.3a/talkd/process.c
--- /inetutils-1.3a/talkd/process.c	Tue Feb 18 03:51:47 1997
+++ inetutils-1.3a/talkd/process.c	Tue Jul 29 18:35:11 1997
@@ -209,8 +209,10 @@
 				(void) strcpy(ftty + sizeof(PATH_DEV) - 1,
 				    line);
 				if (stat(ftty, &statb) == 0) {
+#ifndef __CYGWIN32__
 					if (!(statb.st_mode & 020))
 						continue;
+#endif
 					(void) strcpy(tty, line);
 					status = SUCCESS;
 					break;
diff -ur /inetutils-1.3a/talkd/talkd.c inetutils-1.3a/talkd/talkd.c
--- /inetutils-1.3a/talkd/talkd.c	Tue Feb 18 04:00:28 1997
+++ inetutils-1.3a/talkd/talkd.c	Thu Jul 31 16:40:10 1997
@@ -98,26 +98,37 @@
 	register CTL_MSG *mp = &request;
 	int cc;
 
+#ifndef __CYGWIN32__
 	if (getuid()) {
 		fprintf(stderr, "%s: getuid: not super-user\n", argv[0]);
 		exit(1);
 	}
+#endif
 	openlog("talkd", LOG_PID, LOG_DAEMON);
 	hostname = localhost ();
 	if (! hostname) {
 		syslog(LOG_ERR, "localhost: %m");
 		_exit(1);
 	}
+#ifndef __CYGWIN32__
 	if (chdir(PATH_DEV) < 0) {
 		syslog(LOG_ERR, "chdir: %s: %m", PATH_DEV);
 		_exit(1);
 	}
+#endif
 	if (argc > 1 && strcmp(argv[1], "-d") == 0)
 		debug = 1;
 	signal(SIGALRM, timeout);
 	alarm(TIMEOUT);
 	for (;;) {
+#ifndef __CYGWIN32__
 		extern int errno;
+#else
+		fd_set fds;
+		FD_ZERO (&fds);
+		FD_SET (0, &fds);
+		select (1, &fds, 0, 0, 0);
+#endif
 
 		cc = recv(0, (char *)mp, sizeof (*mp), 0);
 		if (cc != sizeof (*mp)) {
diff -ur /inetutils-1.3a/telnet/telnet.c inetutils-1.3a/telnet/telnet.c
--- /inetutils-1.3a/telnet/telnet.c	Mon Feb 17 05:36:04 1997
+++ inetutils-1.3a/telnet/telnet.c	Thu Jul 24 15:56:27 1997
@@ -748,7 +748,7 @@
 }
 
 #ifdef	TERMCAP
-char termbuf[1024];
+char termbuf[2048];
 
 	/*ARGSUSED*/
 	int
diff -ur /inetutils-1.3a/telnet/utilities.c inetutils-1.3a/telnet/utilities.c
--- /inetutils-1.3a/telnet/utilities.c	Mon Feb 17 05:36:05 1997
+++ inetutils-1.3a/telnet/utilities.c	Thu Jul 24 15:56:28 1997
@@ -54,7 +54,7 @@
 #  include <time.h>
 # endif
 #endif
-
+#include <sys/socket.h>
 #include <ctype.h>
 
 #include "general.h"
diff -ur /inetutils-1.3a/telnetd/sys_term.c inetutils-1.3a/telnetd/sys_term.c
--- /inetutils-1.3a/telnetd/sys_term.c	Wed Feb 19 05:11:07 1997
+++ inetutils-1.3a/telnetd/sys_term.c	Thu Jul 24 15:56:28 1997
@@ -470,7 +470,7 @@
 int *ptynum;
 {
 	register int p;
-#ifdef	STREAMSPTY
+#if defined(STREAMSPTY) || defined (__CYGWIN32__)
 	int t;
 	char *ptsname();
 
@@ -1220,7 +1220,7 @@
 	struct secstat secbuf;
 #endif	/* UNICOS7x */
 
-#ifndef STREAMSPTY
+#if !defined(STREAMSPTY) && !defined (__CYGWIN32__)
 	/*
 	 * Make sure that other people can't open the
 	 * slave side of the connection.
@@ -1514,6 +1514,9 @@
 	extern char *getenv();
 	char **envp;
 
+#ifdef __CYGWIN32__
+	return;
+#endif
 	envp = envinit;
 	if (*envp = getenv("TZ"))
 		*envp++ -= 3;
@@ -1792,7 +1795,9 @@
 	 * finish up with the tty.  There's a race condition
 	 * the login banner message gets lost...
 	 */
+#ifndef __CYGWIN32__
 	sleep(1);
+#endif
 	execv(PATH_LOGIN, argv);
 
 	syslog(LOG_ERR, "%s: %m\n", PATH_LOGIN);
diff -ur /inetutils-1.3a/telnetd/telnetd.c inetutils-1.3a/telnetd/telnetd.c
--- /inetutils-1.3a/telnetd/telnetd.c	Wed Feb 19 05:11:09 1997
+++ inetutils-1.3a/telnetd/telnetd.c	Thu Jul 24 15:56:29 1997
@@ -766,7 +766,7 @@
 terminaltypeok(s)
     char *s;
 {
-    char buf[1024];
+    char buf[2048];
 
     if (terminaltype == NULL)
 	return(1);
@@ -1245,7 +1245,9 @@
 					continue;
 				}
 			}
+#ifndef __CYGWIN32__
 			sleep(5);
+#endif
 			continue;
 		}
 
