>But interesting. Can you show me your profile.rb and profiler.rb in lib\ruby\1.8?
>
>I'll attach my files.

I don't know if this comes from same issue but...

I tried to output what file are actually required.

/////////////////////
// test.rb

module Kernel
  alias test require
  def require(*a)
    p a
    test *a
  end
end

require 'profile'

////////////

And I got same error.


E:\ruby-cvs\bcc32>ruby19 \test.rb
["profile"]
["profiler"]
  %   cumulative   self              self     total
 time   seconds   seconds    calls  ms/call  ms/call  name
500.00     0.05      0.05        1    50.00    50.00  Profiler__.start_profile
  0.00     0.05      0.00        1     0.00    10.00  #toplevel
  0.00     0.05      0.00        1     0.00    50.00  Kernel.require
E:/ruby-cvs/ruby/lib/profiler.rb:30: undefined method `[]' for nil:NilClass (NoM
ethodError)
        from E:/ruby-cvs/ruby/lib/profiler.rb:5:in `require'
        from /test.rb:4:in `require'
        from /test.rb:9

////////////////

If I changed profile.rb like this,

Index: profile.rb
===================================================================
RCS file: /src/ruby/lib/profile.rb,v
retrieving revision 1.8
diff -u -w -b -p -r1.8 profile.rb
--- profile.rb	20 Dec 2002 09:00:10 -0000	1.8
+++ profile.rb	25 Apr 2005 07:34:25 -0000
@@ -1,6 +1,7 @@
 require 'profiler'
 
-END {
-  Profiler__::print_profile(STDERR)
-}
+begin
 Profiler__::start_profile
+ensure
+  Profiler__::print_profile(STDERR)
+end


error was gone.

E:\ruby-cvs\bcc32>ruby19 \test.rb
["profile"]
["profiler"]
  %   cumulative   self              self     total
 time   seconds   seconds    calls  ms/call  ms/call  name
300.00     0.03      0.03        1    30.00    30.00  Profiler__.start_profile
  0.00     0.03      0.00        1     0.00    10.00  #toplevel

Does this patch solve your problem too?