diff --git a/src/os_unix.c b/src/os_unix.c
index 047bd84b30486c76d65ed698e880be12dd93a214..5195b6b7b1fbbbab28e7561022445ce5b15364fa 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 @@ mch_FullName(fname, buf, len, force)
     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))
     {
diff --git a/src/version.c b/src/version.c
index dc85d40a6df0bdc9ffc9eedbb42421d54ce8b824..0dd549fb779f7bae4045f4dd366743bce4ecd84f 100644
--- a/src/version.c
+++ b/src/version.c
@@ -666,6 +666,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    228,
 /**/
     227,
 /**/