Index: arch/ia32/src/smp/smp.c
===================================================================
--- arch/ia32/src/smp/smp.c	(revision 430f12c2b834fb1281bbfcfb78b01a17834a5332)
+++ arch/ia32/src/smp/smp.c	(revision e45f81a91d8f7bd44b09c7657c42c53ac63ce7a2)
@@ -62,5 +62,4 @@
 void smp_init(void)
 {
-	int status;
 	__address l_apic_address, io_apic_address;
 
@@ -74,10 +73,10 @@
 	}
 
-	l_apic_address = (__address) frame_alloc_rc(ONE_FRAME, FRAME_ATOMIC | FRAME_KA, &status);
-	if (status != FRAME_OK)
+	l_apic_address = (__address) frame_alloc(ONE_FRAME, FRAME_ATOMIC | FRAME_KA);
+	if (!l_apic_address)
 		panic("cannot allocate address for l_apic\n");
 
-	io_apic_address = (__address) frame_alloc_rc(ONE_FRAME, FRAME_ATOMIC | FRAME_KA, &status);
-	if (status != FRAME_OK)
+	io_apic_address = (__address) frame_alloc(ONE_FRAME, FRAME_ATOMIC | FRAME_KA);
+	if (!io_apic_address)
 		panic("cannot allocate address for io_apic\n");
 
Index: genarch/src/fb/fb.c
===================================================================
--- genarch/src/fb/fb.c	(revision 430f12c2b834fb1281bbfcfb78b01a17834a5332)
+++ genarch/src/fb/fb.c	(revision e45f81a91d8f7bd44b09c7657c42c53ac63ce7a2)
@@ -389,5 +389,4 @@
 	int pages = SIZE2FRAMES(totsize);
 	int order;
-	int rc;
 	if (pages == 1)
 		order = 0;
@@ -395,5 +394,5 @@
 		order = fnzb(pages-1)+1;
 
-	dbbuffer = frame_alloc_rc(order,FRAME_ATOMIC | FRAME_KA, &rc);
+	dbbuffer = frame_alloc(order,FRAME_ATOMIC | FRAME_KA);
 	if (!dbbuffer)
 		printf("Failed to allocate scroll buffer.\n");
@@ -402,5 +401,6 @@
 	/* Initialized blank line */
 	blankline = (__u8 *) malloc(ROW_BYTES, FRAME_ATOMIC);
-	ASSERT(blankline);
+	if (!blankline)
+		panic("Failed to allocate blank line for framebuffer.");
 	for (y=0; y < FONT_SCANLINES; y++)
 		for (x=0; x < xres; x++)
Index: generic/include/mm/frame.h
===================================================================
--- generic/include/mm/frame.h	(revision 430f12c2b834fb1281bbfcfb78b01a17834a5332)
+++ generic/include/mm/frame.h	(revision e45f81a91d8f7bd44b09c7657c42c53ac63ce7a2)
@@ -90,10 +90,8 @@
 #define IS_BUDDY_RIGHT_BLOCK_ABS(zone, frame)	(((frame_index_abs((zone), (frame)) >> (frame)->buddy_order) & 0x1) == 1)
 
-#define frame_alloc(order, flags)				frame_alloc_generic(order, flags, NULL, NULL)
-#define frame_alloc_rc(order, flags, status)			frame_alloc_generic(order, flags, status, NULL)
-#define frame_alloc_rc_zone(order, flags, status, zone)		frame_alloc_generic(order, flags, status, zone)
+#define frame_alloc(order, flags)				frame_alloc_generic(order, flags, NULL)
 
 extern void frame_init(void);
-extern void * frame_alloc_generic(__u8 order, int flags, int * status, int *pzone);
+extern void * frame_alloc_generic(__u8 order, int flags, int *pzone);
 extern void frame_free(__address frame);
 extern void frame_reference_add(pfn_t pfn);
Index: generic/src/mm/frame.c
===================================================================
--- generic/src/mm/frame.c	(revision 430f12c2b834fb1281bbfcfb78b01a17834a5332)
+++ generic/src/mm/frame.c	(revision e45f81a91d8f7bd44b09c7657c42c53ac63ce7a2)
@@ -932,5 +932,5 @@
  *
  */
-void * frame_alloc_generic(__u8 order, int flags, int *status, int *pzone) 
+void * frame_alloc_generic(__u8 order, int flags, int *pzone) 
 {
 	ipl_t ipl;
@@ -968,10 +968,6 @@
 		interrupts_restore(ipl);
 
-		if (flags & FRAME_ATOMIC) {
-			ASSERT(status != NULL);
-			if (status)
-				*status = FRAME_NO_MEMORY;
+		if (flags & FRAME_ATOMIC)
 			return 0;
-		}
 		
 		panic("Sleep not implemented.\n");
@@ -984,7 +980,4 @@
 	spinlock_unlock(&zone->lock);
 	interrupts_restore(ipl);
-
-	if (status)
-		*status = FRAME_OK;
 
 	if (flags & FRAME_KA)
Index: generic/src/mm/slab.c
===================================================================
--- generic/src/mm/slab.c	(revision 430f12c2b834fb1281bbfcfb78b01a17834a5332)
+++ generic/src/mm/slab.c	(revision e45f81a91d8f7bd44b09c7657c42c53ac63ce7a2)
@@ -162,9 +162,8 @@
 	size_t fsize;
 	int i;
-	int status;
 	int zone=0;
 	
-	data = frame_alloc_rc_zone(cache->order, FRAME_KA | flags, &status, &zone);
-	if (status != FRAME_OK) {
+	data = frame_alloc_generic(cache->order, FRAME_KA | flags, &zone);
+	if (!data) {
 		return NULL;
 	}
Index: generic/src/proc/thread.c
===================================================================
--- generic/src/proc/thread.c	(revision 430f12c2b834fb1281bbfcfb78b01a17834a5332)
+++ generic/src/proc/thread.c	(revision e45f81a91d8f7bd44b09c7657c42c53ac63ce7a2)
@@ -125,5 +125,4 @@
 {
 	thread_t *t = (thread_t *)obj;
-	int status;
 
 	spinlock_initialize(&t->lock, "thread_t_lock");
@@ -142,6 +141,6 @@
 #endif	
 
-	t->kstack = frame_alloc_rc(STACK_FRAMES, FRAME_KA | kmflags,&status);
-	if (status) {
+	t->kstack = frame_alloc(STACK_FRAMES, FRAME_KA | kmflags);
+	if (! t->kstack) {
 #ifdef ARCH_HAS_FPU
 		if (t->saved_fpu_context)
Index: test/mm/falloc1/test.c
===================================================================
--- test/mm/falloc1/test.c	(revision 430f12c2b834fb1281bbfcfb78b01a17834a5332)
+++ test/mm/falloc1/test.c	(revision e45f81a91d8f7bd44b09c7657c42c53ac63ce7a2)
@@ -46,5 +46,4 @@
 	int i, order, run;
 	int allocated;
-	int status;
 
 	ASSERT(TEST_RUNS > 1);
@@ -56,5 +55,5 @@
 			allocated = 0;
 			for (i = 0; i < MAX_FRAMES >> order; i++) {
-				frames[allocated] = frame_alloc_rc(order, FRAME_ATOMIC | FRAME_KA, &status);
+				frames[allocated] = frame_alloc(order, FRAME_ATOMIC | FRAME_KA);
 				
 				if (ALIGN_UP(frames[allocated], FRAME_SIZE << order) != frames[allocated]) {
