--- syscalls.cc	2002-06-02 05:14:47.000000000 +0200
+++ syscalls.cc.patched	2002-06-04 14:21:55.000000000 +0200
@@ -95,10 +95,18 @@ extern "C" int
 _unlink (const char *ourname)
 {
   int res = -1;
+  DWORD devn;
   sigframe thisframe (mainthread);
 
   path_conv win32_name (ourname, PC_SYM_NOFOLLOW | PC_FULL);
 
+  if ((devn = win32_name.get_devn ()) == FH_PROC || devn == FH_REGISTRY ||
+      devn == FH_PROCESS)
+    {
+      set_errno (EROFS);
+      goto done; 
+    }
+
   if (win32_name.error)
     {
       set_errno (win32_name.error);
