diff --git a/Makefile.dep b/Makefile.dep
index e1a8c08ca49b18520b7dec930be0c515c7ed82a6..0c0516ba8f21f103de58562faed0573ea3212ab4 100644
--- a/Makefile.dep
+++ b/Makefile.dep
@@ -16,6 +16,42 @@ ifneq (,$(filter pnet,$(USEMODULE)))
 	endif
 endif
 
+ifneq (,$(filter destiny,$(USEMODULE)))
+    ifeq (,$(filter sixlowpan,$(USEMODULE)))
+        USEMODULE += sixlowpan
+    endif
+    ifeq (,$(filter net_help,$(USEMODULE)))
+        USEMODULE += net_help
+    endif
+    ifeq (,$(filter vtimer,$(USEMODULE)))
+        USEMODULE += vtimer
+    endif
+endif
+
+ifneq (,$(filter sixlowborder,$(USEMODULE)))
+    ifeq (,$(filter sixlowpan,$(USEMODULE)))
+        USEMODULE += sixlowpan
+    endif
+endif
+
+ifneq (,$(filter sixlowpan,$(USEMODULE)))
+    ifeq (,$(filter ieee802154,$(USEMODULE)))
+        USEMODULE += ieee802154
+    endif
+    ifeq (,$(filter net_help,$(USEMODULE)))
+        USEMODULE += net_help
+    endif
+    ifeq (,$(filter net_if,$(USEMODULE)))
+        USEMODULE += net_if
+    endif
+    ifeq (,$(filter posix, $(USEMODULE)))
+        USEMODULE += posix
+    endif
+    ifeq (,$(filter vtimer, $(USEMODULE)))
+        USEMODULE += vtimer
+    endif
+endif
+
 ifneq (,$(filter posix,$(USEMODULE)))
 	ifeq (,$(filter uart0,$(USEMODULE)))
 		USEMODULE += uart0
@@ -73,42 +109,6 @@ ifneq (,$(filter at86rf231,$(USEMODULE)))
 	endif
 endif
 
-ifneq (,$(filter destiny,$(USEMODULE)))
-	ifeq (,$(filter sixlowpan,$(USEMODULE)))
-		USEMODULE += sixlowpan
-	endif
-	ifeq (,$(filter net_help,$(USEMODULE)))
-		USEMODULE += net_help
-	endif
-	ifeq (,$(filter vtimer,$(USEMODULE)))
-		USEMODULE += vtimer
-	endif
-endif
-
-ifneq (,$(filter sixlowborder,$(USEMODULE)))
-	ifeq (,$(filter sixlowpan,$(USEMODULE)))
-		USEMODULE += sixlowpan
-	endif
-endif
-
-ifneq (,$(filter sixlowpan,$(USEMODULE)))
-	ifeq (,$(filter ieee802154,$(USEMODULE)))
-		USEMODULE += ieee802154
-	endif
-	ifeq (,$(filter net_help,$(USEMODULE)))
-		USEMODULE += net_help
-	endif
-	ifeq (,$(filter net_if,$(USEMODULE)))
-		USEMODULE += net_if
-	endif
-	ifeq (,$(filter semaphore, $(USEMODULE)))
-		USEMODULE += semaphore
-	endif
-	ifeq (,$(filter vtimer, $(USEMODULE)))
-		USEMODULE += vtimer
-	endif
-endif
-
 ifneq (,$(filter vtimer,$(USEMODULE)))
 	ifeq (,$(filter timex,$(USEMODULE)))
 		USEMODULE += timex
diff --git a/sys/Makefile b/sys/Makefile
index f6e62b502d429689175b4ec6677d30bde260ecb4..6c4147b771d161cdb23ff420979850f2f6fbe71e 100644
--- a/sys/Makefile
+++ b/sys/Makefile
@@ -93,9 +93,6 @@ endif
 ifneq (,$(filter hashes,$(USEMODULE)))
     DIRS += hashes
 endif
-ifneq (,$(filter semaphore,$(USEMODULE)))
-    DIRS += semaphore
-endif
 ifneq (,$(filter ccn_lite,$(USEMODULE)))
     DIRS += net/ccn_lite
 endif
diff --git a/sys/include/semaphore.h b/sys/posix/include/semaphore.h
similarity index 100%
rename from sys/include/semaphore.h
rename to sys/posix/include/semaphore.h
diff --git a/sys/semaphore/semaphore.c b/sys/posix/semaphore.c
similarity index 100%
rename from sys/semaphore/semaphore.c
rename to sys/posix/semaphore.c
diff --git a/sys/semaphore/Makefile b/sys/semaphore/Makefile
deleted file mode 100644
index bbca845b2c6db5c46fc824a9a99e30a65c9b096a..0000000000000000000000000000000000000000
--- a/sys/semaphore/Makefile
+++ /dev/null
@@ -1,3 +0,0 @@
-MODULE = semaphore
-
-include $(RIOTBASE)/Makefile.base