public void actionPerformed(ActionEvent e) {
		JComboBox combo = new JComboBox();
		// Figure out what existing environments in the program have
		// the type of automaton that we need.
		EnvironmentFrame[] frames = Universe.frames();
		for (int i = 0; i < frames.length; i++) {
			Environment env = frames[i].getEnvironment();
			if (env == environment
					|| !(env instanceof AutomatonEnvironment)
					|| environment.getObject().getClass() != env.getObject()
							.getClass())
				continue;
			if (environment.getObject() instanceof TuringMachine) {
				TuringMachine t1 = (TuringMachine) environment.getObject();
				TuringMachine t2 = (TuringMachine) env.getObject();
				if (t1.tapes() != t2.tapes())
					continue;
			}
			combo.addItem(frames[i]);
		}
		if (combo.getItemCount() == 0) {
			JOptionPane.showMessageDialog(Universe
					.frameForEnvironment(environment),
					"No other automatons of this type around!");
			return;
		}
		// Prompt the user.
		int result = JOptionPane.showOptionDialog(Universe
				.frameForEnvironment(environment), combo, "Combine Two",
				JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE,
				null, null, null);
		if (result != JOptionPane.YES_OPTION && result != JOptionPane.OK_OPTION)
			return;

		Automaton other = (Automaton) ((EnvironmentFrame) combo
				.getSelectedItem()).getEnvironment().getObject();

		Automaton newOne = (Automaton) environment.getAutomaton().clone();

		add(newOne, other);

		FrameFactory.createFrame(newOne);
	}