private void manageFieldChange(int inRow, String inValue)
	{
		// check if it's lat or long - don't allow changes to these fields
		Field field = _fieldArray[inRow];
		if (field == Field.LATITUDE || field == Field.LONGITUDE)
			return;
		if (inValue.equals(I18nManager.getText("fieldname.latitude"))
		  || inValue.equals(I18nManager.getText("fieldname.longitude")))
			return;

		// Changes to custom field need to be handled differently
		boolean changeToCustom = inValue.equals(I18nManager.getText("fieldname.custom"));
		if (changeToCustom)
		{
			if (field.isBuiltIn())
			{
				String customPrefix = I18nManager.getText("fieldname.prefix") + " ";
				int index = inRow + 1;
				while (hasField(customPrefix + index))
					index++;
				_fieldArray[inRow] = new Field(customPrefix + index);
			}
			// ignore custom to custom changes
		}
		else
		{
			// Change to a fixed field - check we've not already got it
			if (!hasField(inValue))
			{
				// Change is ok - find new Field object corresponding to text
				_fieldArray[inRow] = Field.getField(inValue);
			}
		}
		// fire change
		fireTableRowsUpdated(inRow, inRow);
	}