Index: uspace/lib/c/generic/thread/fibril.c
===================================================================
--- uspace/lib/c/generic/thread/fibril.c	(revision 4f13e19af6dd310dbc87a66e115ff6ac62b71bde)
+++ uspace/lib/c/generic/thread/fibril.c	(revision d8cb48d0d5ff99e259bd58c8606fc402434818ea)
@@ -550,6 +550,5 @@
 		return 0;
 
-	fibril->stack_size = (stksz == FIBRIL_DFLT_STK_SIZE) ?
-	    stack_size_get() : stksz;
+	fibril->stack_size = stksz;
 	fibril->stack = as_area_create(AS_AREA_ANY, fibril->stack_size,
 	    AS_AREA_READ | AS_AREA_WRITE | AS_AREA_CACHEABLE | AS_AREA_GUARD |
@@ -572,4 +571,9 @@
 	context_create(&fibril->ctx, &sctx);
 	return (fid_t) fibril;
+}
+
+fid_t fibril_create(errno_t (*func)(void *), void *arg)
+{
+	return fibril_create_generic(func, arg, stack_size_get());
 }
 
Index: uspace/lib/c/include/fibril.h
===================================================================
--- uspace/lib/c/include/fibril.h	(revision 4f13e19af6dd310dbc87a66e115ff6ac62b71bde)
+++ uspace/lib/c/include/fibril.h	(revision d8cb48d0d5ff99e259bd58c8606fc402434818ea)
@@ -49,10 +49,11 @@
 typedef fibril_t *fid_t;
 
+#ifndef __cplusplus
 /** Fibril-local variable specifier */
 #define fibril_local __thread
-
-#define FIBRIL_DFLT_STK_SIZE	0
+#endif
 
 extern fid_t fibril_create_generic(errno_t (*)(void *), void *, size_t);
+extern fid_t fibril_create(errno_t (*)(void *), void *);
 extern void fibril_destroy(fid_t);
 extern void fibril_add_ready(fid_t);
@@ -68,9 +69,4 @@
 extern void fibril_detach(fid_t fid);
 
-static inline fid_t fibril_create(errno_t (*func)(void *), void *arg)
-{
-	return fibril_create_generic(func, arg, FIBRIL_DFLT_STK_SIZE);
-}
-
 extern void fibril_start(fid_t);
 extern __noreturn void fibril_exit(long);
