Index: uspace/ns/ns.c
===================================================================
--- uspace/ns/ns.c	(revision 5a8b2a2e58c0aff599e30b00eed3a773ff644968)
+++ uspace/ns/ns.c	(revision f8ddd176406660da88b0e9d63695413731cd58ff)
@@ -84,15 +84,17 @@
 static void *klogaddr = NULL;
 
-static void get_as_area(ipc_callid_t callid, ipc_call_t *call, char *name, void **addr)
+static void get_as_area(ipc_callid_t callid, ipc_call_t *call, char *name, char *colstr, void **addr)
 {
 	void *ph_addr;
+	int ph_color;
 
 	if (!*addr) {
-		ph_addr = (void *)sysinfo_value(name);
+		ph_addr = (void *) sysinfo_value(name);
 		if (!ph_addr) {
 			ipc_answer_fast(callid, ENOENT, 0, 0);
 			return;
 		}
-		*addr = as_get_mappable_page(PAGE_SIZE);
+		ph_color = (int) sysinfo_value(colstr);
+		*addr = as_get_mappable_page(PAGE_SIZE, ph_color);
 		physmem_map(ph_addr, *addr, 1, AS_AREA_READ | AS_AREA_CACHEABLE);
 	}
@@ -117,8 +119,10 @@
 			switch (IPC_GET_ARG3(call)) {
 			case SERVICE_MEM_REALTIME:
-				get_as_area(callid, &call, "clock.faddr", &clockaddr);
+				get_as_area(callid, &call, "clock.faddr",
+					"clock.fcolor", &clockaddr);
 				break;
 			case SERVICE_MEM_KLOG:
-				get_as_area(callid, &call, "klog.faddr", &klogaddr);
+				get_as_area(callid, &call, "klog.faddr",
+					"klog.fcolor", &klogaddr);
 				break;
 			default:
