> kernel.rb:
> -------------
> module Kernel
>
> =A0 def su u, g =3D nil
        ^^
> =A0 =A0 if block_given? then
> =A0 =A0 =A0 pid =3D fork {
> =A0 =A0 =A0 =A0 su u, g
          ^^
It looks like a recursion to me. You do not get infinite
recursion just because you do not supply a block in line 6.

Can you tell what is your Kernel#su supposed to do?

Alfred