diff --git a/files/directory.c b/files/directory.c
index 0f211d7..1c98caa 100644
--- a/files/directory.c
+++ b/files/directory.c
@@ -14,6 +14,7 @@
 
 #include "windows.h"
 #include "winerror.h"
+#include "process.h"
 #include "drive.h"
 #include "file.h"
 #include "heap.h"
@@ -454,13 +455,20 @@
  */
 static BOOL32 DIR_TryModulePath( LPCSTR name, DOS_FULL_NAME *full_name )
 {
+    PDB32	*pdb = PROCESS_Current();
+
     /* FIXME: for now, GetModuleFileName32A can't return more */
     /* than OFS_MAXPATHNAME. This may change with Win32. */
+
     char buffer[OFS_MAXPATHNAME];
     LPSTR p;
 
-    if (!GetCurrentTask()) return FALSE;
-    GetModuleFileName32A( GetCurrentTask(), buffer, sizeof(buffer) );
+    if (pdb->flags & PDB32_WIN16_PROC) {
+	if (!GetCurrentTask()) return FALSE;
+	GetModuleFileName16( GetCurrentTask(), buffer, sizeof(buffer) );
+    } else {
+	GetModuleFileName32A( 0, buffer, sizeof(buffer) );
+    }
     if (!(p = strrchr( buffer, '\\' ))) return FALSE;
     if (sizeof(buffer) - (++p - buffer) <= strlen(name)) return FALSE;
     strcpy( p, name );
diff --git a/files/dos_fs.c b/files/dos_fs.c
index e7b5a4f..39fba17 100644
--- a/files/dos_fs.c
+++ b/files/dos_fs.c
@@ -18,9 +18,6 @@
 #include <sys/ioctl.h>
 #include <time.h>
 #include <unistd.h>
-#ifdef HAVE_SYS_STATFS_H
-# include <sys/statfs.h>
-#endif
 
 #include "windows.h"
 #include "winerror.h"
@@ -619,7 +616,7 @@
 				break;
 			}
 		}
-		/* FIXME: the rest of the devices ... lptX, comX et.al. */
+		FIXME(dosfs,"device open %s not supported (yet)\n",DOSFS_Devices[i]);
     		return HFILE_ERROR32;
 	    }
         }
@@ -837,7 +834,7 @@
 {
     DOS_FULL_NAME full_name;
 
-    /* FIXME: is it correct to always return a fully qualified short path? */
+    /* FIXME: Is it correct to return a UNIX style path here? */
     if (!DOSFS_GetFullName( shortpath, TRUE, &full_name )) return 0;
     lstrcpyn32A( longpath, full_name.long_name, longlen );
     return strlen( full_name.long_name );
diff --git a/files/drive.c b/files/drive.c
index c07d350..a5168bc 100644
--- a/files/drive.c
+++ b/files/drive.c
@@ -16,17 +16,19 @@
 #include <fcntl.h>
 #include <errno.h>
 
-#ifdef HAVE_SYS_VFS_H
-# include <sys/vfs.h>
-#endif
 #ifdef HAVE_SYS_PARAM_H
 # include <sys/param.h>
 #endif
-#ifdef HAVE_SYS_MOUNT_H
-# include <sys/mount.h>
-#endif
-#ifdef HAVE_SYS_STATFS_H
-# include <sys/statfs.h>
+#ifdef STATFS_DEFINED_BY_SYS_VFS
+# include <sys/vfs.h>
+#else
+# ifdef STATFS_DEFINED_BY_SYS_MOUNT
+#  include <sys/mount.h>
+# else
+#  ifdef STATFS_DEFINED_BY_SYS_STATFS
+#   include <sys/statfs.h>
+#  endif
+# endif
 #endif
 
 #include "windows.h"
diff --git a/files/profile.c b/files/profile.c
index 037cfb0..e1c3544 100644
--- a/files/profile.c
+++ b/files/profile.c
@@ -494,7 +494,7 @@
         section = section->next;
     }
     buffer[0] = buffer[1] = '\0';
-    return 2;
+    return 0;
 }
 
 
