private void insertDuplicatedIcon(final Icon icon) {
		if (icon == null)
			return;
		if (icon instanceof ImageIcon) {
			ImageIcon i2 = new ImageIcon(((ImageIcon) icon).getImage());
			i2.setDescription(((ImageIcon) icon).getDescription());
			insertIcon(i2);
		} else if (icon instanceof LineIcon) {
			insertIcon(new LineIcon((LineIcon) icon));
		} else {
			/*
			 * CAUTION!! This code works but it won't get saved because of the lack of information. If reaching this, there must be an unsupported type of icon
			 */
			insertIcon(new Icon() {
				public int getIconWidth() {
					return icon.getIconWidth();
				}

				public int getIconHeight() {
					return icon.getIconHeight();
				}

				public void paintIcon(Component c, Graphics g, int x, int y) {
					icon.paintIcon(c, g, x, y);
				}

				public String toString() {
					return icon.toString();
				}
			});
		}
	}