Index: trunk/src/lua/lua_area.cc
===================================================================
--- trunk/src/lua/lua_area.cc	(revision 333)
+++ trunk/src/lua/lua_area.cc	(revision 334)
@@ -403,4 +403,5 @@
 static int luaopen_area( lua_State * L )
 {
+	NV_LUA_STACKASSERT( L, 0 );
 	static const struct luaL_Reg nlua_area_sf [] = {
 		{ "new",            nlua_area_new },
Index: trunk/src/lua/lua_state.cc
===================================================================
--- trunk/src/lua/lua_state.cc	(revision 333)
+++ trunk/src/lua/lua_state.cc	(revision 334)
@@ -32,4 +32,29 @@
 	lua_settop( L->m_state, m_level );
 }
+
+// stack_assert
+nv::lua::stack_assert::stack_assert( lua::state* aL, int expected )
+	: L(aL->get_raw()), m_expected( lua_gettop(aL->get_raw() ) + expected )
+{
+
+}
+
+nv::lua::stack_assert::stack_assert( lua::state& aL, int expected )
+	: L(aL.get_raw()), m_expected( lua_gettop(aL.get_raw() ) + expected )
+{
+
+}
+
+nv::lua::stack_assert::stack_assert( lua_State* aL, int expected )
+	: L(aL), m_expected( lua_gettop(aL) + expected )
+{
+
+}
+
+lua::stack_assert::~stack_assert()
+{
+	NV_ASSERT( lua_gettop(L) == m_expected, "Lua stack corruption detected!" );
+}
+
 
 // state_wrapper
