updated for version 7.0-228
diff --git a/src/os_unix.c b/src/os_unix.c
index 047bd84..5195b6b 100644
--- a/src/os_unix.c
+++ b/src/os_unix.c
@@ -55,6 +55,12 @@
 # endif
 #endif
 
+#ifdef __CYGWIN__
+# ifndef WIN32
+#  include <sys/cygwin.h>	/* for cygwin_conv_to_posix_path() */
+# endif
+#endif
+
 #if defined(HAVE_SELECT)
 extern int   select __ARGS((int, fd_set *, fd_set *, fd_set *, struct timeval *));
 #endif
@@ -2230,6 +2236,13 @@
     fname = vms_fixfilename(fname);
 #endif
 
+#ifdef __CYGWIN__
+    /*
+     * This helps for when "/etc/hosts" is a symlink to "c:/something/hosts".
+     */
+    cygwin_conv_to_posix_path(fname, fname);
+#endif
+
     /* expand it if forced or not an absolute path */
     if (force || !mch_isFullName(fname))
     {