anchor.diff:      {$ENDIF}{$IFNDEF PS_NOINTERFACES}btInterface, {$ENDIF}
       btclass, btPChar, btString: FrealSize := PointerSize;
       btSingle, bts32, btU32: FRealSize := 4;
  -    btProcPtr: FRealSize := 2 * sizeof(Pointer) + sizeof(Cardinal);
  +    btProcPtr: FRealSize := 3 * sizeof(Pointer);
       btCurrency: FrealSize := Sizeof(Currency);
  -    btPointer: FRealSize := 2 * sizeof(Pointer) + sizeof(LongBool); // ptr, type, freewhendone
  +    btPointer: FRealSize := 3 * sizeof(Pointer); // ptr, type, freewhendone
       btDouble{$IFNDEF PS_NOINT64}, bts64{$ENDIF}: FrealSize := 8;
       btExtended: FrealSize := SizeOf(Extended);
       btReturnAddress: FrealSize := Sizeof(TBTReturnAddress);
  
positive.code: function MyAllMethodsHandler2(Self: PScriptMethodInfo; const Stack: PPointer; _EDX, _ECX: Pointer): Integer; forward;
  
  procedure MyAllMethodsHandler;
  //  On entry:
  //     EAX = Self pointer
  //     EDX, ECX = param1 and param2
  
negative.code:               Pointer(Dest^) := Pointer(Src^);
                Dest := Pointer(IPointer(Dest) + PointerSize);
                Src := Pointer(IPointer(Src) + PointerSize);
                Pointer(Dest^) := nil;
                Dest := Pointer(IPointer(Dest) + PointerSize);
                Src := Pointer(IPointer(Src) + PointerSize);
              end;
            end else begin
              for i := 0 to Len -1 do
  