private boolean finalizeMoleculeDuplication() {
		if (!(selectedComponent instanceof Molecule))
			throw new RuntimeException("target not a molecule");
		Molecule mol = (Molecule) selectedComponent;
		if (!finalizeMoleculeLocation(mol)) {
			nAtom -= mol.size();
			List list = mol.getBonds();
			if (list != null && !list.isEmpty()) {
				for (Iterator it = list.iterator(); it.hasNext();)
					bonds.remove((RadialBond) it.next());
			}
			list = mol.getBends();
			if (list != null && !list.isEmpty()) {
				for (Iterator it = list.iterator(); it.hasNext();)
					bends.remove((AngularBond) it.next());
			}
			if (molecules.contains(mol))
				molecules.remove(mol);
			setSelectedComponent(null);
			repaint();
			return false;
		}
		molecules.add(mol);
		if (!model.getRecorderDisabled())
			mol.initializeMovieQ(model.getMovie().getCapacity());
		return true;
	}