diff --git a/Makefile.moddir_rules b/Makefile.moddir_rules
index 2bd809d13cd6c37a7f034186085224c90519c0b0..be44ddc67dad211fbb12c253fb8c0cfdfa7eb518 100644
--- a/Makefile.moddir_rules
+++ b/Makefile.moddir_rules
@@ -44,7 +44,10 @@ $(addsuffix .oo,$(CC_MODS)) $(addsuffix .o,$(C_MODS)):	\
 	ASTCFLAGS+= -DAST_MODULE=\"$*\" $(MENUSELECT_OPTS_$*:%=-D%) $(foreach dep,$(MENUSELECT_DEPENDS_$*),$(value $(dep)_INCLUDE))
 
 # For loadable modules, pass _LIB and _LDFLAGS from menuselect.
+ifneq ($(OSARCH),mingw32)       # -fPIC is default on mingw32 and cygwin
 $(LOADABLE_MODS:%=%.so): ASTCFLAGS+=-fPIC
+endif
+
 $(LOADABLE_MODS:%=%.so): LIBS+=$(foreach dep,$(MENUSELECT_DEPENDS_$*),$(value $(dep)_LIB))
 $(LOADABLE_MODS:%=%.so): ASTLDFLAGS+=$(foreach dep,$(MENUSELECT_DEPENDS_$*),$(value $(dep)_LDFLAGS))