Index: kernel/generic/src/ddi/ddi.c
===================================================================
--- kernel/generic/src/ddi/ddi.c	(revision 26d3ae2d56cbdf7eaecdc582b53cef8f6ebf6f7c)
+++ kernel/generic/src/ddi/ddi.c	(revision 007ea77661ccd247eb22bd0adeccce01a295f3cb)
@@ -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;
