Overriding hook.Call causing infinite loop on code refresh.

So when I use code along the lines of this:

[lua]
hook.OldCall = hook.Call;

function hook.Call( name, gamemode, … )
if( GAMEMODE != nil ) then
–Do some stuff here
pcall( SomeFunction, GAMEMODE, unpack( { … } ) );
end;

return hook.OldCall( name, gamemode, ... );

end;
[/lua]

It creates an infinite loop. I’m wondering if anyone else has experienced this issue, if so, is there a way to fix it?

Fixed it

[lua]
if( hook.OldCall == nil ) then
hook.OldCall = hook.Call;
end;
[/lua]