--- unix/unix.c.ORIG	Sun Nov  7 15:08:21 1999
+++ unix/unix.c	Thu Jun 28 00:16:36 2001
@@ -216,6 +216,14 @@
   dosflag = dosify;  /* default for non-DOS and non-OS/2 */
 
   /* Find starting point in name before doing malloc */
+#ifdef __CYGWIN__
+  /* Strip drive specification */
+  t = *x && isascii((uch)*x) && *(x + 1) == ':' ? x + 2 : x;
+  /* Convert backslashes to slashes */
+  for (n = t; *n; n++)
+    if (*n == '\\')
+      *n = '/';
+#endif
   /* Strip "//host/share/" part of a UNC name */
   if (!strncmp(x,"//",2) && (x[2] != '\0' && x[2] != '/')) {
     n = x + 2;
@@ -228,8 +236,12 @@
     }
     if (*n != '\0')
       t = n + 1;
+#ifdef __CYGWIN__
+  }
+#else
   } else
       t = x;
+#endif
   while (*t == '/')
     t++;                /* strip leading '/' chars to get a relative path */
   while (*t == '.' && t[1] == '/')
