Suspended threads should not acquire synchronization objects.

diff --git a/server/process.c b/server/process.c
index 785c4cb..c3cf436 100644
--- a/server/process.c
+++ b/server/process.c
@@ -673,7 +673,11 @@
         while (thread)
         {
             struct thread *next = thread->proc_next;
-            if (!thread->suspend) continue_thread( thread );
+            if (!thread->suspend)
+            {
+                continue_thread( thread );
+                wake_thread( thread );
+            }
             thread = next;
         }
     }
@@ -818,7 +822,7 @@
         if (!check_process_write_access( thread, addr, len ))
         {
             set_error( STATUS_ACCESS_DENIED );
-            return;
+            goto done;
         }
         /* first word is special */
         if (len > 1)