Index: genarch/src/mm/asid.c
===================================================================
--- genarch/src/mm/asid.c	(revision 36b01bb280f8f00e1705fde42fc2edfaebfbe5ae)
+++ genarch/src/mm/asid.c	(revision 895be41b23cd9c7c75fc351d2b4a2dd975238de9)
@@ -95,5 +95,5 @@
 	ipl = interrupts_disable();
 	spinlock_lock(&asidlock);
-	if (asids_allocated == ASIDS_ALLOCABLE) {
+	if (ASID_STEALING_ENABLED && asids_allocated == ASIDS_ALLOCABLE) {
 
 		/*
@@ -122,4 +122,11 @@
 
 		/*
+		 * Notify the address space from wich the ASID
+		 * was stolen by invalidating its asid member.
+		 */
+		as->asid = ASID_INVALID;
+		spinlock_unlock(&as->lock);
+
+		/*
 		 * Get the system rid of the stolen ASID.
 		 */
@@ -127,7 +134,4 @@
 		tlb_shootdown_finalize();
 		tlb_invalidate_asid(asid);
-		as->asid = ASID_INVALID;
-		
-		spinlock_unlock(&as->lock);
 	} else {
 
