Index: uspace/lib/c/generic/fibril.c
===================================================================
--- uspace/lib/c/generic/fibril.c	(revision 77ad86ca9ec1edac5e39ab6e237ea58c13b85efb)
+++ uspace/lib/c/generic/fibril.c	(revision 32d19f757b014501ef88e20a2fa7d354e4bc0b39)
@@ -286,4 +286,20 @@
 }
 
+/** Delete a fibril that has never run.
+ *
+ * Free resources of a fibril that has been created with fibril_create()
+ * but never readied using fibril_add_ready().
+ *
+ * @param fid Pointer to the fibril structure of the fibril to be
+ *            added.
+ */
+void fibril_destroy(fid_t fid)
+{
+	fibril_t *fibril = (fibril_t *) fid;
+	
+	free(fibril->stack);
+	fibril_teardown(fibril);
+}
+
 /** Add a fibril to the ready list.
  *
Index: uspace/lib/c/include/fibril.h
===================================================================
--- uspace/lib/c/include/fibril.h	(revision 77ad86ca9ec1edac5e39ab6e237ea58c13b85efb)
+++ uspace/lib/c/include/fibril.h	(revision 32d19f757b014501ef88e20a2fa7d354e4bc0b39)
@@ -87,4 +87,5 @@
 
 extern fid_t fibril_create(int (*func)(void *), void *arg);
+extern void fibril_destroy(fid_t fid);
 extern fibril_t *fibril_setup(void);
 extern void fibril_teardown(fibril_t *f);
