diff --git a/src/Makefile b/src/Makefile
index 87449a6..9a78736 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -29,6 +29,7 @@ MYOBJS=
 PLATS= aix bsd c89 freebsd generic linux macosx mingw posix solaris
 
 LUA_A=	liblua5.3.a
+LUA_LA=	liblua5.3.a
 CORE_O=	lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o \
 	lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o \
 	ltm.o lundump.o lvm.o lzio.o
@@ -60,10 +61,10 @@ $(LUA_A): $(BASE_O)
 	$(RANLIB) $@
 
 $(LUA_T): $(LUA_O) iscygpty.o $(LUA_A)
-	$(CC) -o $@ $(LDFLAGS) $(LUA_O) iscygpty.o $(LUA_A) $(LIBS)
+	$(CC) -o $@ $(LDFLAGS) $(LUA_O) iscygpty.o $(LUA_LA) $(LIBS)
 
 $(LUAC_T): $(LUAC_O) $(LUA_A)
-	$(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS)
+	$(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_LA) $(LIBS)
 
 clean:
 	$(RM) $(ALL_T) $(ALL_O)
@@ -113,8 +114,8 @@ macosx:
 	$(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_MACOSX" SYSLIBS="-lreadline"
 
 mingw:
-	$(MAKE) "LUA_A=lua53.dll" "LUA_T=lua5.3.exe" \
-	"AR=$(CC) -shared -o" "RANLIB=strip --strip-unneeded" \
+	$(MAKE) "LUA_A=lua53.dll" "LUA_LA=liblua5.3.dll.a" "LUA_T=lua5.3.exe" \
+	"AR=$(CC) -shared -Wl,--out-implib=liblua5.3.dll.a -o" "RANLIB=strip --strip-unneeded" \
 	"SYSCFLAGS=-DLUA_BUILD_AS_DLL" "SYSLIBS=" "SYSLDFLAGS=-s" lua5.3.exe
 	$(MAKE) "LUAC_T=luac5.3.exe" luac5.3.exe
 
