diff --git a/files/file.c b/files/file.c
index b1b5a98..c967d48 100644
--- a/files/file.c
+++ b/files/file.c
@@ -180,6 +180,7 @@
  *           FILE_DupUnixHandle
  *
  * Duplicate a Unix handle into a task handle.
+ * Returns 0 on failure.
  */
 HANDLE FILE_DupUnixHandle( int fd, DWORD access )
 {
@@ -194,6 +195,7 @@
  *           FILE_GetUnixHandle
  *
  * Retrieve the Unix handle corresponding to a file handle.
+ * Returns -1 on failure.
  */
 int FILE_GetUnixHandle( HANDLE handle, DWORD access )
 {
@@ -677,7 +679,7 @@
         do
         {
             HFILE handle = CreateFileA( buffer, GENERIC_WRITE, 0, NULL,
-                                            CREATE_NEW, FILE_ATTRIBUTE_NORMAL, -1 );
+                                            CREATE_NEW, FILE_ATTRIBUTE_NORMAL, 0 );
             if (handle != INVALID_HANDLE_VALUE)
             {  /* We created it */
                 TRACE("created %s\n",
@@ -836,7 +838,7 @@
     {
         if ((hFileRet = CreateFileA( name, GENERIC_READ | GENERIC_WRITE,
                                        sharing, NULL, CREATE_ALWAYS,
-                                       FILE_ATTRIBUTE_NORMAL, -1 ))== INVALID_HANDLE_VALUE)
+                                       FILE_ATTRIBUTE_NORMAL, 0 ))== INVALID_HANDLE_VALUE)
             goto error;
         goto success;
     }
@@ -1304,7 +1306,7 @@
     TRACE("%s %02x\n", path, attr );
     return CreateFileA( path, GENERIC_READ | GENERIC_WRITE,
                         FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
-                        CREATE_ALWAYS, attr, -1 );
+                        CREATE_ALWAYS, attr, 0 );
 }
 
 
@@ -1389,7 +1391,7 @@
 
     TRACE("('%s',%04x)\n", path, mode );
     FILE_ConvertOFMode( mode, &access, &sharing );
-    return CreateFileA( path, access, sharing, NULL, OPEN_EXISTING, 0, -1 );
+    return CreateFileA( path, access, sharing, NULL, OPEN_EXISTING, 0, 0 );
 }
 
 
@@ -1808,7 +1810,7 @@
     mode = (info.dwFileAttributes & FILE_ATTRIBUTE_READONLY) ? 0444 : 0666;
     if ((h2 = CreateFileA( dest, GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
                              fail_if_exists ? CREATE_NEW : CREATE_ALWAYS,
-                             info.dwFileAttributes, h1 )) == HFILE_ERROR)
+                             info.dwFileAttributes, h1 )) == INVALID_HANDLE_VALUE)
     {
         CloseHandle( h1 );
         return FALSE;
