anchor.diff:        AErrors := 'Target key cannot be changed during atomic coin swap';
         exit;
       end;
  -
  -  end;
  -
  +  end;
   
     if (FData.opTransactionStyle in [buy_account, transaction_with_auto_buy_account]) then begin
       // account purchase
  
positive.code: 
  procedure TOpChangeKey.InitializeData(AProtocolVersion : Word);
  begin
    inherited(AProtocolVersion);
    FData := CT_TOpChangeKeyData_NUL;
  end;
  
  
negative.code:     if (TAccountComp.IsAccountForSwap( LTarget.accountInfo ) AND (ASafeBoxTransaction.FreezedSafeBox.CurrentProtocol<CT_PROTOCOL_5)) then begin
        AErrors := 'Tx-Buy atomic swaps are not allowed until Protocol 5';
        exit;
      end else If (ASafeBoxTransaction.FreezedSafeBox.CurrentProtocol<CT_PROTOCOL_5) then begin
        // the below line was a bug fix that introduced a new bug, and is retained here for
        // V2-V4 consistency
        //------
        if Not (TAccountComp.IsValidAccountKey(FData.new_accountkey,AErrors)) then exit; // BUG 20171511
        //------
      end else if Not (TAccountComp.IsValidAccountKey(LTarget.accountInfo.new_publicKey,AErrors)) then exit;
  
      // Fill the purchase data
      FData.opTransactionStyle := transaction_with_auto_buy_account; // Set this data!
  