  	th->mild_compile_error++;
  	node = (NODE *)rb_load_file(RSTRING_PTR(fname));
  	loaded = TRUE;
--	iseq = rb_iseq_new_top(node, rb_str_new2("<top (required)>"), fname, fname, Qfalse);
-+	
+-	iseq = rb_iseq_new_top(node, rb_str_new2("<top (required)>"), fname, rb_realpath_internal(Qnil, fname, 1), Qfalse);
 +	snprintf(iseq_name, sizeof(iseq_name), "<top %s>", RSTRING_PTR(fname));
-+	iseq = rb_iseq_new_top(node, rb_str_new2(iseq_name), fname, fname, Qfalse);
++	iseq = rb_iseq_new_top(node, rb_str_new2(iseq_name), fname, rb_realpath_internal(Qnil, fname, 1), Qfalse);
  	th->mild_compile_error--;
  	rb_iseq_eval(iseq);
      }
 Index: compile.c
 ===================================================================
---- compile.c	(revision 27987)
+--- compile.c	(revision 28635)
 +++ compile.c	(working copy)
 @@ -3353,6 +3353,9 @@
  	if (iseq->compile_data->redo_label != 0) {

 		EXEC_EVENT_HOOK(th, RUBY_EVENT_END, th->cfp->self, 0, 0);
Index: vm_insnhelper.c
===================================================================
--- vm_insnhelper.c	(revision 27987)
+++ vm_insnhelper.c	(working copy)
@@ -26,9 +26,12 @@
 	      const VALUE *pc, VALUE *sp, VALUE *lfp,

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