--- src/mod_cml_lua.c.orig	2012-10-22 06:17:17.418886286 -0700
+++ src/mod_cml_lua.c	2012-10-22 06:25:50.289753316 -0700
@@ -28,6 +28,10 @@
 #include <lualib.h>
 #include <lauxlib.h>
 
+#if LUA_VERSION_NUM >= 502
+#define LUA_GLOBALSINDEX LUA_REGISTRYINDEX
+#endif
+
 typedef struct {
 	stream st;
 	int done;
@@ -285,7 +285,11 @@
 	lua_settable(L, LUA_GLOBALSINDEX);
 
 	/* load lua program */
+#if LUA_VERSION_NUM >= 502
+	if (lua_load(L, load_file, &rm, fn->ptr, NULL) || lua_pcall(L,0,1,0)) {
+#else
 	if (lua_load(L, load_file, &rm, fn->ptr) || lua_pcall(L,0,1,0)) {
+#endif
 		log_error_write(srv, __FILE__, __LINE__, "s",
 				lua_tostring(L,-1));

--- src/mod_magnet.c.orig	2014-03-06 18:08:00.000000000 +0400
+++ src/mod_magnet.c	2014-08-04 00:28:43.515720829 +0400
@@ -24,6 +24,10 @@
 #define MAGNET_CONFIG_PHYSICAL_PATH "magnet.attract-physical-path-to"
 #define MAGNET_RESTART_REQUEST      99
 
+#if LUA_VERSION_NUM >= 502
+#define LUA_GLOBALSINDEX LUA_REGISTRYINDEX
+#endif
+
 /* plugin config for all request/connections */
 
 static jmp_buf exceptionjmp;
@@ -691,7 +695,11 @@
 	 * get the environment of the function
 	 */
 
+#if LUA_VERSION_NUM >= 502
+	lua_getupvalue(L, -1, 1); /* -1 is the function, _ENV is the first upvalue of a chunk */
+#else
 	lua_getfenv(L, -1); /* -1 is the function */
+#endif
 
 	/* lighty.header */
 
@@ -741,7 +749,11 @@
 	 */
 
 	force_assert(lua_isfunction(L, -1));
+#if LUA_VERSION_NUM >= 502
+	lua_getupvalue(L, -1, 1); /* -1 is the function, _ENV is the first upvalue of a chunk */
+#else
 	lua_getfenv(L, -1); /* -1 is the function */
+#endif
 
 	lua_getfield(L, -1, "lighty"); /* lighty.* from the env  */
 	force_assert(lua_istable(L, -1));
@@ -990,8 +1002,11 @@
 	lua_setfield(L, -2, "__index"); /* { __index = _G }          (sp -= 1) */
 	lua_setmetatable(L, -2); /* setmetatable({}, {__index = _G}) (sp -= 1) */
 
-
+#if LUA_VERSION_NUM >= 502
+	lua_setupvalue(L, -2, 1); /* on the stack should be a modified env (sp -= 1), _ENV is the first upvalue of a chunk */
+#else
 	lua_setfenv(L, -2); /* on the stack should be a modified env (sp -= 1) */
+#endif
 
 	errfunc = push_traceback(L, 0);
 	if (lua_pcall(L, 0, 1, errfunc)) {
