Index: uspace/fb/fb.c
===================================================================
--- uspace/fb/fb.c	(revision 5a8b2a2e58c0aff599e30b00eed3a773ff644968)
+++ uspace/fb/fb.c	(revision 319e60e55b0b59b46de5960c99fbbfe193c9017a)
@@ -705,7 +705,8 @@
 		/* We accept one area for data interchange */
 		if (IPC_GET_ARG1(*call) == shm_id) {
-			void *dest = as_get_mappable_page(IPC_GET_ARG2(*call));
+			void *dest = as_get_mappable_page(IPC_GET_ARG2(*call),
+				PAGE_COLOR(IPC_GET_ARG1(*call)));
 			shm_size = IPC_GET_ARG2(*call);
-			if (!ipc_answer_fast(callid, 0, (sysarg_t)dest, 0)) 
+			if (!ipc_answer_fast(callid, 0, (sysarg_t) dest, 0)) 
 				shm = dest;
 			else
@@ -717,5 +718,5 @@
 		} else {
 			intersize = IPC_GET_ARG2(*call);
-			receive_comm_area(callid,call,(void *)&interbuffer);
+			receive_comm_area(callid, call, (void *) &interbuffer);
 		}
 		return 1;
@@ -1283,10 +1284,11 @@
 
 	asz = fb_scanline * fb_height;
-	fb_addr = as_get_mappable_page(asz);
+	fb_addr = as_get_mappable_page(asz, (int) sysinfo_value("fb.address.color"));
 	
 	physmem_map(fb_ph_addr, fb_addr, ALIGN_UP(asz, PAGE_SIZE) >> PAGE_WIDTH,
 		    AS_AREA_READ | AS_AREA_WRITE);
 
-	if (screen_init(fb_addr, fb_width, fb_height, fb_scanline, fb_visual, fb_invert_colors))
+	if (screen_init(fb_addr, fb_width, fb_height, fb_scanline, fb_visual,
+		fb_invert_colors))
 		return 0;
 	
