diff -r cda8e1a2dfa2 -r 5778073d2903 src/event_callback.c --- a/src/event_callback.c Wed Sep 05 23:35:31 2007 -0400 +++ b/src/event_callback.c Thu Sep 06 00:05:55 2007 -0400 @@ -23,7 +23,13 @@ lua_State* L; int ret; double newTimeout = -1; - assert(cb && cb->base && cb->base->loop_L); + assert(cb); + if(!cb->base) { + /* Callback has been collected... die */ + /* TODO: What should really be done here... */ + return; + } + assert(cb->base->loop_L); L = cb->base->loop_L; lua_rawgeti(L, LUA_REGISTRYINDEX, cb->callbackRef); lua_pushinteger(L, event);