restore per-message event emit