Fix for 64-bit negative seek value.

diff --git a/files/file.c b/files/file.c
index f1e9fbe..77ce52f 100644
--- a/files/file.c
+++ b/files/file.c
@@ -1289,9 +1289,12 @@
 {
     struct set_file_pointer_request *req = get_req_buffer();
 
-    if (highword && *highword)
+    if (highword &&
+        ((distance >= 0 && *highword != 0) || (distance < 0 && *highword != -1)))
     {
-        FIXME("64-bit offsets not supported yet\n");
+        FIXME("64-bit offsets not supported yet\n"
+              "SetFilePointer(%08x,%08lx,%08lx,%08lx)\n",
+              hFile,distance,*highword,method);
         SetLastError( ERROR_INVALID_PARAMETER );
         return 0xffffffff;
     }
@@ -1300,7 +1303,7 @@
 
     req->handle = hFile;
     req->low = distance;
-    req->high = highword ? *highword : 0;
+    req->high = highword ? *highword : (distance >= 0) ? 0 : -1;
     /* FIXME: assumes 1:1 mapping between Windows and Unix seek constants */
     req->whence = method;
     SetLastError( 0 );