Index: src/modules/standard/mod_rewrite.c
===================================================================
--- src/modules/standard/mod_rewrite.c	(revision 159600)
+++ src/modules/standard/mod_rewrite.c	(working copy)
@@ -56,6 +56,10 @@
 #include <sys/uio.h>
 #endif
 
+#ifdef USE_WIN32_SEMAPHORE_LOCKING
+static CRITICAL_SECTION logCriticalSection;
+#endif
+
 #ifdef NETWARE
 #include <nwsemaph.h>
 static LONG locking_sem = 0;
@@ -948,6 +952,10 @@
     /* create the rewriting lockfile in the parent */
     rewritelock_create(s, p);
     ap_register_cleanup(p, (void *)s, rewritelock_remove, ap_null_cleanup);
+ 	  
+#ifdef USE_WIN32_SEMAPHORE_LOCKING
+   	InitializeCriticalSection(&logCriticalSection);
+#endif USE_WIN32_SEMAPHORE_LOCKING
 
     /* step through the servers and
      * - open each rewriting logfile
@@ -3473,6 +3481,9 @@
 #ifdef NETWARE
 	CloseLocalSemaphore (locking_sem);
 #endif
+#ifdef USE_WIN32_SEMAPHORE_LOCKING
+        DeleteCriticalSection(&logCriticalSection);
+#endif
 
 }
 
@@ -4344,7 +4355,7 @@
 
 static void fd_lock(request_rec *r, int fd)
 {
-    int rc;
+    int rc = 0;
 
 #ifdef USE_FCNTL
     lock_it.l_whence = SEEK_SET; /* from current point */
@@ -4364,12 +4375,8 @@
         continue;
     }
 #endif
-#ifdef USE_LOCKING
-    /* Lock the first byte, always, assume we want to append
-       and seek to the end afterwards */
-    lseek(fd, 0, SEEK_SET);
-    rc = _locking(fd, _LK_LOCK, 1);
-    lseek(fd, 0, SEEK_END);
+#ifdef USE_WIN32_SEMAPHORE_LOCKING
+    EnterCriticalSection(&logCriticalSection);     
 #endif
 #ifdef NETWARE
 	if ((locking_sem != 0) && (TimedWaitOnLocalSemaphore (locking_sem, 10000) != 0))
@@ -4388,7 +4395,7 @@
 
 static void fd_unlock(request_rec *r, int fd)
 {
-    int rc;
+    int rc = 0;
 
 #ifdef USE_FCNTL
     unlock_it.l_whence = SEEK_SET; /* from current point */
@@ -4402,10 +4409,8 @@
 #ifdef USE_FLOCK
     rc = flock(fd, LOCK_UN);
 #endif
-#ifdef USE_LOCKING
-    lseek(fd, 0, SEEK_SET);
-    rc = _locking(fd, _LK_UNLCK, 1);
-    lseek(fd, 0, SEEK_END);
+#ifdef USE_WIN32_SEMAPHORE_LOCKING
+    LeaveCriticalSection(&logCriticalSection); 
 #endif
 #ifdef NETWARE
 	if (locking_sem)
Index: src/modules/standard/mod_rewrite.h
===================================================================
--- src/modules/standard/mod_rewrite.h	(revision 159600)
+++ src/modules/standard/mod_rewrite.h	(working copy)
@@ -129,8 +129,7 @@
 #endif
 #ifdef WIN32
 #undef USE_FCNTL
-#define USE_LOCKING
-#include <sys/locking.h>
+#define USE_WIN32_SEMAPHORE_LOCKING
 #endif
 
 
