  		ID id_mesg;
 Index: proc.c
 ===================================================================
---- proc.c	(revision 26851)
+--- proc.c	(revision 26914)
 +++ proc.c	(working copy)
 @@ -27,7 +27,7 @@
  VALUE rb_iseq_parameters(const rb_iseq_t *iseq, int is_proc);

 #endif /* RUBY_COMPILE_H */
Index: load.c
===================================================================
--- load.c	(revision 26851)
+++ load.c	(working copy)
@@ -284,11 +284,14 @@
     if (state == 0) {
 	NODE *node;
 	VALUE iseq;

     rb_define_method(rb_cThread, "set_trace_func", thread_set_trace_func_m, 1);
     rb_define_method(rb_cThread, "add_trace_func", thread_add_trace_func_m, 1);
 
Index: eval.c
===================================================================
--- eval.c	(revision 26914)
+++ eval.c	(working copy)
@@ -429,7 +429,7 @@
     rb_trap_restore_mask();
 
     if (tag != TAG_FATAL) {
-	EXEC_EVENT_HOOK(th, RUBY_EVENT_RAISE, th->cfp->self, 0, 0);
+	EXEC_EVENT_HOOK(th, RUBY_EVENT_RAISE, th->cfp->self, 0, mesg);
     }
 }
 
Index: vm_exec.h
===================================================================
--- vm_exec.h	(revision 26914)
+++ vm_exec.h	(working copy)
@@ -18,6 +18,40 @@
 typedef rb_num_t GENTRY;
