Index: kernel/generic/src/mm/km.c
===================================================================
--- kernel/generic/src/mm/km.c	(revision 7ec3c5638215716bb0cffafe64b4b0bdc6a543b3)
+++ kernel/generic/src/mm/km.c	(revision fb4a424279571d50c7676c2c88d543bdf1bf68b7)
@@ -248,13 +248,16 @@
 	 */
 	uintptr_t page;
-	uintptr_t frame =
-	    frame_alloc(1, FRAME_HIGHMEM | FRAME_ATOMIC | flags, 0);
+	uintptr_t frame;
+
+	frame = frame_alloc(1, FRAME_HIGHMEM | FRAME_ATOMIC | flags, 0);
 	if (frame) {
 		page = km_map(frame, PAGE_SIZE,
 		    PAGE_READ | PAGE_WRITE | PAGE_CACHEABLE);
-		
-		// FIXME
-		ASSERT(page);
+		if (!page) {	
+			frame_free(frame, 1);
+			goto lowmem;
+		}
 	} else {
+lowmem:
 		frame = frame_alloc(1, FRAME_LOWMEM | flags, 0);
 		if (!frame)
