diff --git a/src/mod/languages/mod_lua/mod_lua.2008.vcproj b/src/mod/languages/mod_lua/mod_lua.2008.vcproj
index 67b627ae58..36a50f10bf 100644
--- a/src/mod/languages/mod_lua/mod_lua.2008.vcproj
+++ b/src/mod/languages/mod_lua/mod_lua.2008.vcproj
@@ -270,7 +270,7 @@
 			>
 		</File>
 		<File
-			RelativePath=".\mod_lua.c"
+			RelativePath=".\mod_lua.cpp"
 			>
 		</File>
 		<File
diff --git a/src/mod/languages/mod_lua/mod_lua.c b/src/mod/languages/mod_lua/mod_lua.cpp
similarity index 99%
rename from src/mod/languages/mod_lua/mod_lua.c
rename to src/mod/languages/mod_lua/mod_lua.cpp
index 97f66e52ae..9cf350edfa 100644
--- a/src/mod/languages/mod_lua/mod_lua.c
+++ b/src/mod/languages/mod_lua/mod_lua.cpp
@@ -30,11 +30,11 @@
  */
 
 #include <switch.h>
+SWITCH_BEGIN_EXTERN_C
 #include "lua.h"
 #include <lauxlib.h>
 #include <lualib.h>
 #include "mod_lua_extra.h"
-
 SWITCH_MODULE_LOAD_FUNCTION(mod_lua_load);
 SWITCH_MODULE_DEFINITION(mod_lua, mod_lua_load, NULL, NULL);
 
@@ -140,7 +140,7 @@ static void lua_parse_and_execute(lua_State *L, char *input_code)
 					stream.write_function(&stream, "'%s'%s", argv[x], x == argc-1 ? "" : ", ");
 				}
 				stream.write_function(&stream, " };");
-				code = stream.data;
+				code = (char *)stream.data;
 			} else {
 				code = switch_mprintf("argv = {};");
 			}
@@ -370,6 +370,8 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_lua_load)
 	return SWITCH_STATUS_SUCCESS;
 }
 
+SWITCH_END_EXTERN_C
+
 /* For Emacs:
  * Local Variables:
  * mode:c
diff --git a/src/mod/languages/mod_lua/mod_lua.vcproj b/src/mod/languages/mod_lua/mod_lua.vcproj
index 5be97ed7dd..b936708408 100644
--- a/src/mod/languages/mod_lua/mod_lua.vcproj
+++ b/src/mod/languages/mod_lua/mod_lua.vcproj
@@ -270,7 +270,7 @@
 			>
 		</File>
 		<File
-			RelativePath=".\mod_lua.c"
+			RelativePath=".\mod_lua.cpp"
 			>
 		</File>
 		<File