Index: /branches/eam_branches/ipp-20110505/psLib/src/sys/psMemory.c
===================================================================
--- /branches/eam_branches/ipp-20110505/psLib/src/sys/psMemory.c	(revision 31573)
+++ /branches/eam_branches/ipp-20110505/psLib/src/sys/psMemory.c	(revision 31574)
@@ -721,4 +721,5 @@
     // the global mutex is released, but the memBlock and its neighbors are protected
     BLOCKSET_LOCK (memBlock, false);
+    // MUTEX_LOCK(&memBlockListMutex);
 
     psMemBlock *nextBlock = memBlock->nextBlock;
@@ -766,4 +767,5 @@
 
     // all of the list modifications are done; set the lock and clear the per-memBlock locks
+    // MUTEX_UNLOCK(&memBlockListMutex);
     BLOCKSET_UNLOCK(memBlock, false);
 
@@ -1029,19 +1031,17 @@
     if (nextBlock != NULL) {
         nextBlock->previousBlock = previousBlock;
-	nextBlock->inFlight = false;
     }
     if (previousBlock != NULL) {
         previousBlock->nextBlock = nextBlock;
-	previousBlock->inFlight = false;
     }
     if (lastMemBlockAllocated == memBlock) {
         lastMemBlockAllocated = nextBlock;
     }
+
+    BLOCKSET_UNLOCK (memBlock, true);
 
     // NULL out the refs so no one can get confused
     memBlock->nextBlock = NULL;
     memBlock->previousBlock = NULL;
-
-    BLOCKSET_UNLOCK (memBlock, true);
 
     // XXX these are slightly dangerous : someone else may grab the lock in the meanwhile...
