diff -r 9886d8efdf7f -r fe6bb91d79b1 core/sourcemod.cpp --- a/core/sourcemod.cpp Mon Feb 26 04:36:15 2007 +0000 +++ b/core/sourcemod.cpp Mon Feb 26 05:26:54 2007 +0000 @@ -160,6 +160,7 @@ SH_ADD_HOOK_MEMFUNC(IServerGameDLL, GameFrame, gamedll, this, &SourceModBase::GameFrame, false); enginePatch = SH_GET_CALLCLASS(engine); + gamedllPatch = SH_GET_CALLCLASS(gamedll); /* Notify! */ SMGlobalClass *pBase = SMGlobalClass::head; @@ -345,6 +346,12 @@ enginePatch = NULL; } + if (gamedllPatch) + { + SH_RELEASE_CALLCLASS(gamedllPatch); + gamedllPatch = NULL; + } + SH_REMOVE_HOOK_MEMFUNC(IServerGameDLL, LevelInit, gamedll, this, &SourceModBase::LevelInit, false); SH_REMOVE_HOOK_MEMFUNC(IServerGameDLL, LevelShutdown, gamedll, this, &SourceModBase::LevelShutdown, false); SH_REMOVE_HOOK_MEMFUNC(IServerGameDLL, GameFrame, gamedll, this, &SourceModBase::GameFrame, false);