fixed suspected problem in fire_event()