diff --git a/NTMakefile b/NTMakefile
index 4ec99aa4a496be28fd5d121dc64a0299e8cbe1d2..a6ade40bab3f4b400c9f8cda9234820b27b75689 100644
--- a/NTMakefile
+++ b/NTMakefile
@@ -78,7 +78,10 @@ OBJECTS = $(subst $(SRCDIR),$(OBJDIR),$(SOURCES:.cpp=.o))
 
 all: $(SOURCES) netrunner
 
-netrunner: $(OBJECTS) $(OBJDIR)/tlsf.o
+netrunner.res.o: netrunner.rc
+	windres $^ -o $@
+
+netrunner: $(OBJECTS) $(OBJDIR)/tlsf.o netrunner.res.o
 	$(LINK) $(LDFLAGS) -o $@ $^ $(LIBS)
 
 shaders:
diff --git a/netrunner.ico b/netrunner.ico
new file mode 100644
index 0000000000000000000000000000000000000000..66fd3d4b54c28c963ff710da7a84eeeeb7bb9193
Binary files /dev/null and b/netrunner.ico differ
diff --git a/netrunner.rc b/netrunner.rc
new file mode 100644
index 0000000000000000000000000000000000000000..c1b0442f6359d9cf224ed0c97837218dd3dae290
--- /dev/null
+++ b/netrunner.rc
@@ -0,0 +1,63 @@
+// Microsoft Visual C++ generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE 
+BEGIN
+    "resource.h\0"
+END
+
+2 TEXTINCLUDE 
+BEGIN
+    "\0"
+END
+
+3 TEXTINCLUDE 
+BEGIN
+    "\r\n"
+    "\0"
+END
+
+#endif    // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+IDI_ICON1               ICON                    "netrunner.ico"
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif    // not APSTUDIO_INVOKED
+
diff --git a/resource.h b/resource.h
new file mode 100644
index 0000000000000000000000000000000000000000..410458b1c5f09d1353becb2ee275cffd9975f2af
--- /dev/null
+++ b/resource.h
@@ -0,0 +1,16 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by netrunner.rc
+//
+#define IDI_ICON1                       102
+
+// Next default values for new objects
+// 
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE        103
+#define _APS_NEXT_COMMAND_VALUE         40001
+#define _APS_NEXT_CONTROL_VALUE         1000
+#define _APS_NEXT_SYMED_VALUE           101
+#endif
+#endif
diff --git a/src/main.cpp b/src/main.cpp
index d6e1e453f7e79f39be74fba860d9ae5f7e9de73a..680cdb5a79b5c79bff1749fce7e5b6dace91350e 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -79,7 +79,7 @@ bool fileExists(const std::string s) {
 
 int main(int argc, char *argv[]) {
     // show help msg when "--help" appears
-    if (strcmp(argv[1], "--help")==0) {
+    if (argv[1] && (strcmp(argv[1], "--help")==0)) {
         std::cout << "./netrunner [http://host.tld/|/path/to/file.html] [-log <error|warning|notice|info|debug>]" << std::endl;
         return 1;
     }