anchor.diff:        ErrorDesc := 'Need param "pwd"';
         exit;
       end;
  -    If Not _RPCServer.WalletKeys.IsValidPassword then begin
  -      _RPCServer.WalletKeys.WalletPassword:=params.AsString('pwd','');
  -    end;
  -    jsonresponse.GetAsVariant('result').Value := _RPCServer.WalletKeys.IsValidPassword;
  -    Result := true;
  +    FNode.OperationSequenceLock.Acquire;  // Use lock to prevent N_Operation race-condition on concurrent invocations
  +    try
  +      If Not _RPCServer.WalletKeys.IsValidPassword then begin
  +        _RPCServer.WalletKeys.WalletPassword:=params.AsString('pwd','');
  +      end;
  +      jsonresponse.GetAsVariant('result').Value := _RPCServer.WalletKeys.IsValidPassword;
  +      Result := true;
  +    finally
  +      FNode.OperationSequenceLock.Release;
  +    end;
     end else if (method='setwalletpassword') then begin
       // Changes the Wallet password with "pwd" param
       // Must be unlocked first
  
positive.code:     {$IFDEF Use_OpenSSL}
      GetResultObject.GetAsVariant('openssl').Value := IntToHex(OpenSSLVersion,8);
      {$ENDIF}
      nsaarr := TNetData.NetData.NodeServersAddresses.GetValidNodeServers(true,20);
      for i := low(nsaarr) to High(nsaarr) do begin
        jso := GetResultObject.GetAsArray('nodeservers').GetAsObject(i);
        jso.GetAsVariant('ip').Value := nsaarr[i].ip;
  
negative.code:       ErrorDesc := 'Need param "pwd"';
        exit;
      end;
      FNode.OperationSequenceLock.Acquire;  // Use lock to prevent N_Operation race-condition on concurrent invocations
      try
        _RPCServer.WalletKeys.WalletPassword:=params.AsString('pwd','');
        jsonresponse.GetAsVariant('result').Value := _RPCServer.WalletKeys.IsValidPassword;
        Result := true;
      finally
        FNode.OperationSequenceLock.Release;
      end;
    end else if (method='stopnode') then begin
      // Stops communications to other nodes
      if (Not _RPCServer.AllowUsePrivateKeys) then begin
  