diff --git a/pbx/pbx_lua.c b/pbx/pbx_lua.c
index 741e9507db..8673dfdef5 100644
--- a/pbx/pbx_lua.c
+++ b/pbx/pbx_lua.c
@@ -805,7 +805,19 @@ static int lua_error_function(lua_State *L)
 	lua_pushliteral(L, "\n");
 
 	lua_getglobal(L, "debug");
+	if (!lua_istable(L, -1)) {
+		/* Have no 'debug' table for whatever reason */
+		lua_pop(L, 2);
+		/*  Original err message is on stack top now */
+		return 1;
+	}
 	lua_getfield(L, -1, "traceback");
+	if (!lua_isfunction(L, -1)) {
+		/* Same here for traceback function */
+		lua_pop(L, 3);
+		/*  Original err message is on stack top now */
+		return 1;
+	}
 	lua_remove(L, -2); /* remove the 'debug' table */
 
 	lua_pushvalue(L, message_index);