Index: /trunk/ccl/lisp-kernel/thread_manager.c
===================================================================
--- /trunk/ccl/lisp-kernel/thread_manager.c	(revision 621)
+++ /trunk/ccl/lisp-kernel/thread_manager.c	(revision 622)
@@ -483,4 +483,7 @@
     destroy_semaphore(&tcr->reset_completion);
     destroy_semaphore(&tcr->activate);
+    free(tcr->tlb_pointer);
+    tcr->tlb_pointer = NULL;
+    tcr->tlb_limit = 0;
     tcr->osid = 0;
     UNLOCK(lisp_global(AREA_LOCK),tcr);
@@ -836,4 +839,5 @@
 
   LOCK(lisp_global(TCR_LOCK), current);
+  LOCK(lisp_global(AREA_LOCK), current);
   for (other = current->next; other != current; other = other->next) {
     if ((other->osid != 0)) {
@@ -865,4 +869,5 @@
     resume_tcr(other);
   }
+  UNLOCK(lisp_global(AREA_LOCK), current);
   UNLOCK(lisp_global(TCR_LOCK), current);
 }
