diff --git a/Externals/cross-compiler/Makefile b/Externals/cross-compiler/Makefile
index ae2df5ae1c5cd6819319a0e9dc2452d213df7e0d..935d646506e647402b86b27313514a9beae97eca 100644
--- a/Externals/cross-compiler/Makefile
+++ b/Externals/cross-compiler/Makefile
@@ -35,7 +35,7 @@ $(BDIR_GCC)/Makefile: Makefile $(addprefix $(GCC_DIR)/,$(GCC_CHANGES)) $(GCC_DIR
 
 $(PREFIX)/bin/$(TARGET)-gcc: $(BDIR_GCC)/Makefile
 	@$(ENVVARS) make -C $(BDIR_GCC) $(GCC_TARGETS:%=all-%) -j $(PARLEVEL)
-	@$(ENVVARS) make -C $(BDIR_GCC)libstdc++-v3/ all-target-libsupc++ -j $(PARLEVEL)
+	#@$(ENVVARS) make -C $(BDIR_GCC)/libstdc++-v3/ all-target-libsupc++ -j $(PARLEVEL)
 	@$(ENVVARS) make -C $(BDIR_GCC) $(GCC_TARGETS:%=install-%)
 
 
diff --git a/Makefile b/Makefile
index a2e46d10a5f38fb18773ff396442dd6d6e6adda8..cb21b454e13485ad20d4fe11664954b3c5dbf4ad 100644
--- a/Makefile
+++ b/Makefile
@@ -10,7 +10,7 @@
 
 SUBMAKE = $(MAKE) --no-print-directory
 
-USRLIBS := crt0.o ld-acess.so libc.so libposix.so libc++.so
+USRLIBS := crt0.o ld-acess.so libc.so libposix.so libc++.so libpthread.so
 USRLIBS += libreadline.so libnet.so liburi.so libpsocket.so
 USRLIBS += libimage_sif.so libunicode.so libm.so
 USRLIBS += libaxwin4.so
@@ -136,5 +136,6 @@ $(CC):
 	@echo ---
 	@echo $(CC) does not exist, recompiling
 	@echo ---
+	for dir in $(USRLIBS:%=Usermode/Libraries/%_src); do $(SUBMAKE) -C $$dir _libs; done
 	make -C Externals/cross-compiler/ -f Makefile.cross
 endif
diff --git a/Usermode/Libraries/Makefile.tpl b/Usermode/Libraries/Makefile.tpl
index 3b8d2f55aca31fab14e0edfd2d57e3820ed6daa0..de263f52d569b58ef74c761f058b0f09b758600c 100644
--- a/Usermode/Libraries/Makefile.tpl
+++ b/Usermode/Libraries/Makefile.tpl
@@ -55,6 +55,7 @@ HEADERS := $(patsubst include_exp/%,../../include/%,$(shell find include_exp/ -n
 _libs: $(HEADERS)
 
 ../../include/%: include_exp/%
+	@echo [LN] $@
 	@mkdir -p $(dir $@)
 	@ln -s $(shell pwd)/$< $@