anchor.diff:    FileName: tbtstring;
     ErrorMessage: TKMScriptErrorMessage;
     Res: TPSLineInfoResults;
  -begin
  +  e: Exception;
  +begin
  +  e := Exception(AcquireExceptionObject);
  +  e.Message := e.Message + ' raised in ' + AMethod;
     if ExceptionOutsideScript then
     begin
       ExceptionOutsideScript := False; //Reset
  -    raise aEx; //Exception was in game code not script, so pass up to madExcept
  +    raise e at ExceptAddr; //Exception was in game code not script, so pass up to madExcept
     end
     else
     begin
  +    ReleaseExceptionObject;
       DetailedErrorStr := '';
  -    MainErrorStr := 'Exception in script: ''' + aEx.Message + '''';
  +    MainErrorStr := 'Exception in script: ''' + e.Message + '''';
       ExceptionProc := fExec.GetProcNo(fExec.ExceptionProcNo);
       if ExceptionProc is TPSInternalProcRec then
       begin
  
positive.code:   I: Integer;
  begin
    for I := Low(fEventHandlers[aEventType]) to High(fEventHandlers[aEventType]) do
      CallEventProc(fEventHandlers[aEventType][I].Handler, aParams);
  end;
  
  
  
negative.code:     procedure CallEventHandlers(aEventType: TKMScriptEventType; const aParams: array of Integer);
      function GetConsoleCommand(const aName: AnsiString): TKMConsoleCommand;
  
      procedure HandleScriptProcCallError(aMethod: String);
      procedure CallEventProc(const aProc: TKMCustomEventHandler; const aIntParams: array of Integer);
      function MethodAssigned(aProc: TMethod): Boolean; overload; inline;
      function MethodAssigned(aEventType: TKMScriptEventType): Boolean; overload; inline;
      function MethodAssigned(const aCmdName: AnsiString): Boolean; overload; inline;
  