docs: public Object doRemoteCommand(String strCommand, Map<String, Object> properties) throws RemoteException, DBException
      {
      	int iRecordCount = m_vRecordList.getRecordCount();
      	int iOldMasterSlave = this.setMasterSlave(RecordOwner.SLAVE | RecordOwner.MASTER);
      	Record record = this.getMainRecord();
      	if (properties != null)
      		if (Boolean.TRUE.equals(properties.get(MenuConstants.CLONE)))
      			if (record.getClass().getName().equals(properties.get(DBParams.RECORD)))
  		{
  			try {
  				record = (Record)record.clone();
  				this.addRecord(record);
  			} catch (CloneNotSupportedException e) {
  				e.printStackTrace();
  			}
  			record.readSameRecord(this.getMainRecord(), false, false);
  		}
      	Object objReturn = record.doRemoteCommand(strCommand, properties);
      	this.setMasterSlave(iOldMasterSlave);
      	if (record != this.getMainRecord())
      	{
      		record.free();
      		while (m_vRecordList.getRecordCount() > iRecordCount)
      		{	// Close all except the main record
      			m_vRecordList.getRecordAt(m_vRecordList.getRecordCount() - 1).free();
      		}
      	}
      	if (!Boolean.FALSE.equals(objReturn))
      		return objReturn;
          return super.doRemoteCommand(strCommand, properties);
      }