Index: libc/generic/libc.c
===================================================================
--- libc/generic/libc.c	(revision 29a9f628c8583835e581747cfad7877e27f6d810)
+++ libc/generic/libc.c	(revision fcd10af6fb760d39a824242ffd2987aa8db7c809)
@@ -37,11 +37,19 @@
 }
 
+#include <stdio.h>
 void __main(void) {
-	__tls_set(__make_tls());
+	tcb_t *tcb;
+	
+	tcb = __make_tls();
+	__tcb_set(tcb);
+	psthread_setup(tcb);
 }
 
 void __exit(void) {
-	free(__tls_get());
-	
+	tcb_t *tcb;
+
+	tcb = __tcb_get();
+	psthread_teardown(tcb->pst_data);
+	__free_tls(tcb);
 	_exit(0);
 }
