diff --git a/server/mutex.c b/server/mutex.c
index af13dd9..1b1ef37 100644
--- a/server/mutex.c
+++ b/server/mutex.c
@@ -37,8 +37,7 @@
     struct thread *owner;           /* mutex owner */
     unsigned int   count;           /* recursion count */
     int            abandoned;       /* has it been abandoned? */
-    struct mutex  *next;
-    struct mutex  *prev;
+    struct list    entry;           /* entry in owner thread mutex list */
 };
 
 static void mutex_dump( struct object *obj, int verbose );
@@ -71,7 +70,6 @@
             mutex->count = 0;
             mutex->owner = NULL;
             mutex->abandoned = 0;
-            mutex->next = mutex->prev = NULL;
             if (owned) mutex_satisfied( &mutex->obj, current );
         }
     }
@@ -83,19 +81,18 @@
 {
     assert( !mutex->count );
     /* remove the mutex from the thread list of owned mutexes */
-    if (mutex->next) mutex->next->prev = mutex->prev;
-    if (mutex->prev) mutex->prev->next = mutex->next;
-    else mutex->owner->mutex = mutex->next;
+    list_remove( &mutex->entry );
     mutex->owner = NULL;
-    mutex->next = mutex->prev = NULL;
     wake_up( &mutex->obj, 0 );
 }
 
 void abandon_mutexes( struct thread *thread )
 {
-    while (thread->mutex)
+    struct list *ptr;
+
+    while ((ptr = list_head( &thread->mutex_list )) != NULL)
     {
-        struct mutex *mutex = thread->mutex;
+        struct mutex *mutex = LIST_ENTRY( ptr, struct mutex, entry );
         assert( mutex->owner == thread );
         mutex->count = 0;
         mutex->abandoned = 1;
@@ -129,9 +126,7 @@
     {
         assert( !mutex->owner );
         mutex->owner = thread;
-        mutex->prev  = NULL;
-        if ((mutex->next = thread->mutex)) mutex->next->prev = mutex;
-        thread->mutex = mutex;
+        list_add_head( &thread->mutex_list, &mutex->entry );
     }
     if (!mutex->abandoned) return 0;
     mutex->abandoned = 0;
