diff -up fillets-ng-1.0.1/src/gengine/ScriptState.cpp.lua-52 fillets-ng-1.0.1/src/gengine/ScriptState.cpp
--- fillets-ng-1.0.1/src/gengine/ScriptState.cpp.lua-52  2005-07-06 14:50:18.000000000 -0400
+++ fillets-ng-1.0.1/src/gengine/ScriptState.cpp 2013-05-14 16:34:30.954384609 -0400
@@ -17,6 +17,10 @@ extern "C" {
 #include "lauxlib.h"
 }
 
+#ifndef lua_open
+#define lua_open()     luaL_newstate()
+#endif
+
 #include "def-script.h"
 
 //-----------------------------------------------------------------
@@ -42,9 +46,8 @@ ScriptState::~ScriptState()
 void
 ScriptState::prepareErrorHandler()
 {
-    lua_pushliteral(m_state, "_TRACEBACK");
     lua_pushcfunction(m_state, script_debugStack);
-    lua_settable(m_state, LUA_GLOBALSINDEX);
+    lua_setglobal(m_state, "_TRACEBACK");
 }
 //-----------------------------------------------------------------
 /**
@@ -54,7 +57,10 @@ void
 ScriptState::insertErrorHandler(int index)
 {
     lua_pushliteral(m_state, "_TRACEBACK");
-    lua_rawget(m_state, LUA_GLOBALSINDEX);
+    lua_rawgeti(m_state, LUA_REGISTRYINDEX, LUA_RIDX_GLOBALS);
+    lua_insert(m_state, -2);
+    lua_rawget(m_state, -2);
+    lua_remove(m_state, -2);
     lua_insert(m_state, index);
 }
 //-----------------------------------------------------------------
