public boolean equals(Object configuration) {
		if (configuration == this)
			return true;
		try {
			if (!super.equals(configuration))
				return false;
			Tape[] tapes = ((TMConfiguration) configuration).myTapes;
			if (tapes.length != myTapes.length)
				return false;
			for (int i = 0; i < tapes.length; i++)
				if (!tapes[i].equals(myTapes[i]))
					return false;
			return true;
		} catch (ClassCastException e) {
			return false;
		}
	}