diff --git a/minetest-icon.ico b/minetest-icon.ico
new file mode 100644
index 0000000000000000000000000000000000000000..82af67bf918ad7683dfc7b63da97757d8b37d23c
Binary files /dev/null and b/minetest-icon.ico differ
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 8ce69b2adf8945e02a9a48c047ffce90ce1398d0..9bb2667842a2031bb21be1fedf45a4f5d4bef98e 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -128,6 +128,11 @@ set(common_SRCS
 	base64.cpp
 )
 
+# This gives us the icon
+if(WIN32 AND MSVC)
+    set(common_SRCS ${common_SRCS} winresource.rc)
+endif()
+
 # Client sources
 set(minetest_SRCS
 	${common_SRCS}
diff --git a/src/winresource.rc b/src/winresource.rc
new file mode 100644
index 0000000000000000000000000000000000000000..24ec445aa75826b59202b6a9762b58a011a1087e
--- /dev/null
+++ b/src/winresource.rc
@@ -0,0 +1,6 @@
+#include <windows.h>
+#include <commctrl.h>
+#include <richedit.h>
+LANGUAGE 0, SUBLANG_NEUTRAL
+130        ICON         "..\\minetest-icon.ico"
+//131        BITMAP         "..\\minetest-icon.bmp"