Index: /trunk/src/VBox/Additions/common/crOpenGL/pack/packspu_misc.c
===================================================================
--- /trunk/src/VBox/Additions/common/crOpenGL/pack/packspu_misc.c	(revision 35844)
+++ /trunk/src/VBox/Additions/common/crOpenGL/pack/packspu_misc.c	(revision 35845)
@@ -134,5 +134,4 @@
                 && pack_spu.thread[i].packer && pack_spu.thread[i].packer->currentBuffer)
             {
-                crUnlockMutex(&_PackMutex);
                 packspuFlush((void *) &pack_spu.thread[i]);
                 break;
@@ -146,6 +145,7 @@
              */
             thread->netServer.conn->u32InjectClientID=0;
-            crUnlockMutex(&_PackMutex);
-        } 
+        }
+
+        crUnlockMutex(&_PackMutex);
 
         packspuFlush((void *) thread);
Index: /trunk/src/VBox/Additions/common/crOpenGL/pack/packspu_net.c
===================================================================
--- /trunk/src/VBox/Additions/common/crOpenGL/pack/packspu_net.c	(revision 35844)
+++ /trunk/src/VBox/Additions/common/crOpenGL/pack/packspu_net.c	(revision 35845)
@@ -120,10 +120,6 @@
     CRPackBuffer *buf;
 
-#ifdef CHROMIUM_THREADSAFE
-    crLockMutex(&_PackMutex);
-#endif
-
     /* we should _always_ pass a valid <arg> value */
-    CRASSERT(thread);
+    CRASSERT(thread && thread->inUse);
 #ifdef CHROMIUM_THREADSAFE
     CR_LOCK_PACKER_CONTEXT(thread->packer);
@@ -152,5 +148,4 @@
 #ifdef CHROMIUM_THREADSAFE
            CR_UNLOCK_PACKER_CONTEXT(thread->packer);
-           crUnlockMutex(&_PackMutex);
 #endif
            return;
@@ -183,5 +178,4 @@
 #ifdef CHROMIUM_THREADSAFE
     CR_UNLOCK_PACKER_CONTEXT(thread->packer);
-    crUnlockMutex(&_PackMutex);
 #endif
 }
