anchor.diff:      LHi16 := TUInt32(LProduct).Hi;
       Inc(I);
     end;
  -  PUInt16(Result)[I] := LHi16;
  +  if LHi16 <> 0 then
  +  begin
  +    PUInt16(Result)[I] := LHi16;
  +    // var parameter Size := I;
  +    // Size should be the fifth parameter, so it can easily be set from 64 bit code.
  +  end;
   end;
   {$ELSEIF DEFINED(WIN32)}
   asm
  
positive.code: unit Velthuis.BigIntegers;
  
  { TODO:
    - Remove local BigIntegers where possible. Removing Res from class function BigInteger.Add sped
      it up by 15%. Instead of a local BigInteger, Add now uses ResData and ResSize local variables.
  }
  
negative.code:         Exit;
        if LVal >= ABase then
          Exit;
        InternalMultiplyAndAdd16(PLimb(AValue.FData), ABase, LVal, AValue.FSize);
      end;
      Result := True;
    end;
  