Index: uspace/lib/c/generic/fibril.c
===================================================================
--- uspace/lib/c/generic/fibril.c	(revision 82d062d84ee0879d721eb52383c754e968797d93)
+++ uspace/lib/c/generic/fibril.c	(revision 110705072aaee01eaf027896a39f2fb48bff71c3)
@@ -39,4 +39,6 @@
 #include <tls.h>
 #include <malloc.h>
+#include <abi/mm/as.h>
+#include <as.h>
 #include <unistd.h>
 #include <stdio.h>
@@ -195,5 +197,5 @@
 					 * stack member filled.
 					 */
-					free(stack);
+					as_area_destroy(stack);
 				}
 				fibril_teardown(srcf->clean_after_me);
@@ -269,7 +271,9 @@
 		return 0;
 	
-	fibril->stack =
-	    (char *) malloc(FIBRIL_INITIAL_STACK_PAGES_NO * getpagesize());
-	if (!fibril->stack) {
+	fibril->stack = as_area_create((void *) -1,
+	    FIBRIL_INITIAL_STACK_PAGES_NO * getpagesize(),
+	    AS_AREA_READ | AS_AREA_WRITE | AS_AREA_CACHEABLE | AS_AREA_GUARD |
+	    AS_AREA_NORESERVE);
+	if (fibril->stack == (void *) -1) {
 		fibril_teardown(fibril);
 		return 0;
@@ -298,5 +302,5 @@
 	fibril_t *fibril = (fibril_t *) fid;
 	
-	free(fibril->stack);
+	as_area_destroy(fibril->stack);
 	fibril_teardown(fibril);
 }
