Index: kernel/generic/src/ddi/ddi.c
===================================================================
--- kernel/generic/src/ddi/ddi.c	(revision 3a2f8aa1cef1886a9586c9987617553007802c3f)
+++ kernel/generic/src/ddi/ddi.c	(revision f430f5823554539eb9aa453ce917d5621796edc0)
@@ -146,6 +146,8 @@
 		    (btree_key_t) pf, &nodep);
 		
-		if ((!parea) || (parea->frames < pages))
+		if ((!parea) || (parea->frames < pages)) {
+			spinlock_unlock(&parea_lock);
 			goto err;
+		}
 		
 		spinlock_unlock(&parea_lock);
@@ -153,6 +155,6 @@
 	}
 	
+	spinlock_unlock(&zones.lock);
 err:
-	spinlock_unlock(&zones.lock);
 	interrupts_restore(ipl);
 	return ENOENT;
