diff --git a/makefiles/modules.inc.mk b/makefiles/modules.inc.mk
index 4424ca38b7eb4b1b23adf99d1cff26d37b74f849..3b9744d0422b11b9c55f9bd9ad547bcf7df497c9 100644
--- a/makefiles/modules.inc.mk
+++ b/makefiles/modules.inc.mk
@@ -3,7 +3,10 @@ USEMODULE := $(filter-out $(filter-out $(FEATURES_PROVIDED), $(FEATURES_OPTIONAL
 ED = $(addprefix FEATURE_,$(sort $(filter $(FEATURES_PROVIDED), $(FEATURES_REQUIRED))))
 ED += $(addprefix MODULE_,$(sort $(USEMODULE) $(USEPKG)))
 EXTDEFINES = $(addprefix -D,$(shell echo '$(ED)' | tr 'a-z-' 'A-Z_'))
-REALMODULES = $(filter-out $(PSEUDOMODULES), $(sort $(USEMODULE) $(USEPKG)))
+
+# filter "pseudomodules" from "real modules", but not "no_pseudomodules"
+NO_PSEUDOMODULES := $(filter $(NO_PSEUDOMODULES), $(sort $(USEMODULE) $(USEPKG)))
+REALMODULES = $(filter-out $(PSEUDOMODULES), $(sort $(USEMODULE) $(USEPKG))) $(NO_PSEUDOMODULES)
 export BASELIBS += $(REALMODULES:%=$(BINDIR)/%.a)
 
 CFLAGS += $(EXTDEFINES)