--- common.h	2005-10-11 10:55:45.000000000 +0200
+++ common.h	2005-10-11 14:07:42.000000000 +0200
@@ -50,10 +53,9 @@
 #   define PATH_MAX MAX_PATH
 #endif
 
-#define lseek _lseeki64
-
 /* several type definitions */
 #   if defined( __MINGW32__ )
+#define lseek _lseeki64
 #       if !defined( _OFF_T_ )
 typedef long long _off_t;
 typedef _off_t off_t;
--- device.c	2005-07-11 13:33:34.000000000 +0200
+++ device.c	2005-10-01 19:08:07.000000000 +0200
@@ -143,8 +132,11 @@
     print_debug( dvdcss, "opening target `%s'", psz_device );
 
 #if defined( WIN32 )
-    /* If device is not "X:", we are actually opening a file. */
-    dvdcss->b_file = !psz_device[0] || psz_device[1] != ':' || psz_device[2];
+    dvdcss->b_file = 1;
+    /* If device is "X:" or "X:\", we are not actually opening a file. */
+    if (psz_device[0] && psz_device[1] == ':' &&
+       (!psz_device[2] || (psz_device[2] == '\\' && !psz_device[3])))
+        dvdcss->b_file = 0;
 
     /* Initialize readv temporary buffer */
     dvdcss->p_readv_buffer   = NULL;
--- libdvdcss.c	2004-08-13 15:40:18.000000000 +0200
+++ libdvdcss.c	2005-10-01 19:11:27.000000000 +0200
@@ -301,6 +301,10 @@
         {
             psz_home = getenv( "HOME" );
         }
+        if( psz_home == NULL )
+        {
+            psz_home = getenv( "USERPROFILE" );
+        }
 
         /* Cache our keys in ${HOME}/.dvdcss/ */
         if( psz_home )
