This fixes problems with degenerate cases such as: local button assert(coroutine.resume(coroutine.create(function() button = Button(10, 10, 20, 20) end))) button:action(function() print("hi") end)