diff --git a/cmake/Modules/FindGettextLib.cmake b/cmake/Modules/FindGettextLib.cmake
index 3fb391e657c900d20e81fdcb2f5d4e36b5851566..1bc92708a1475d16cc3944a69ca9a49226b741ad 100644
--- a/cmake/Modules/FindGettextLib.cmake
+++ b/cmake/Modules/FindGettextLib.cmake
@@ -20,8 +20,15 @@ FIND_PROGRAM(GETTEXT_MSGFMT
 # they do not because gettext is part of glibc
 # TODO check the requirements on other BSDs and older Linux
 IF (WIN32)
+	IF(MSVC)
+		SET(GETTEXT_LIB_NAMES
+			libintl.lib intl.lib libintl3.lib intl3.lib)
+	ELSE()
+		SET(GETTEXT_LIB_NAMES
+			libintl.dll.a intl.dll.a libintl3.dll.a intl3.dll.a)
+	ENDIF()
 	FIND_LIBRARY(GETTEXT_LIBRARY
-		NAMES libintl.lib intl.lib libintl3.lib intl3.lib
+		NAMES ${GETTEXT_LIB_NAMES}
 		PATHS "${CUSTOM_GETTEXT_PATH}/lib"
 		DOC "gettext *intl*.lib")
 	FIND_LIBRARY(GETTEXT_DLL
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 6cc5c035f602a0199e62978ec1f387a747fd571d..c018d8e56d6753ab5ef93d80e74e10334ae2b5b7 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -235,10 +235,6 @@ else()
 		set(ARCH i386)
 	endif()
 
-	if(WIN32 AND USE_GETTEXT)
-		set(CMAKE_EXE_LINKER_FLAGS "-l${GETTEXT_LIBRARY}")
-	endif()
-
 	set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG ${RELEASE_WARNING_FLAGS} ${WARNING_FLAGS} -O3 -ffast-math -Wall -fomit-frame-pointer -pipe -funroll-loops")
 	set(CMAKE_CXX_FLAGS_DEBUG "-g -O1 -Wall ${WARNING_FLAGS}")