diff --git a/reflex/Module.mk b/reflex/Module.mk
index c1363be103a79c4f480b06df7dc81f825c2624f9..96e5d2670f6c55f96f5a025918443aca39667c03 100644
--- a/reflex/Module.mk
+++ b/reflex/Module.mk
@@ -94,6 +94,10 @@ RFLX_UNITTESTS = $(RFLX_TESTD)/test_Reflex_generate.cxx    \
 RFLX_UNITTESTO = $(subst .cxx,.o,$(RFLX_UNITTESTS))
 RFLX_UNITTESTX = $(subst .cxx,,$(RFLX_UNITTESTS))
 
+RFLX_GENMAPS   = $(REFLEXDIRS)/src/genmap.cxx
+RFLX_GENMAPO   = $(RFLX_GENMAPS:.cxx=.o)
+RFLX_GENMAPX   = bin/genmap$(EXEEXT)
+
 ##### local rules #####
 include/Reflex/%.h: $(REFLEXDIRI)/Reflex/%.h
 		@(if [ ! -d "include/Reflex" ]; then          \
@@ -136,7 +140,13 @@ ifneq ($(PLATFORM),win32)
 		@chmod a+x $(RFLX_GENRFLXRC)
 endif
 
-$(REFLEXLIB): $(RFLX_GENREFLEX) $(RFLX_GENRFLXRC) $(REFLEXO) $(ORDER_) $(MAINLIBS)
+$(RFLX_GENMAPO) : $(RFLX_GENMAPS)
+	$(CXX) $(OPT) $(CXXFLAGS) -Iinclude -I$(REFLEXDIRS)/genmap -c $< $(CXXOUT)$@
+
+$(RFLX_GENMAPX) : $(RFXL_GENMAPO)
+	$(LD) $(LDFLAGS) -o $@ $(RFLX_GENMAPO)
+
+$(REFLEXLIB): $(RFLX_GENMAPX) $(RFLX_GENREFLEX) $(RFLX_GENRFLXRC) $(REFLEXO) $(ORDER_) $(MAINLIBS)
 		@$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)"      \
 		"$(SOFLAGS)" libReflex.$(SOEXT) $@ "$(REFLEXO)" \
 		"$(REFLEXLIBEXTRA)"
@@ -157,6 +167,7 @@ clean-check-reflex:
 		@rm -f $(RFLX_TESTLIBS) $(RFLX_TESTLIBO) $(RFLX_UNITTESTO) $(RFLX_UNITTESTX)
 
 clean-reflex: clean-genreflex clean-check-reflex
+		@rm -f $(RFLX_GENMAPX)
 		@rm -f $(REFLEXO)
 
 clean::         clean-reflex