Bug 87856 [Commands] Last closed editor leaked due to reference by command manager
bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/Command.java
commandListeners.remove(commandListener);
		}
	}
	/**
	 * Changes the handler for this command. If debugging is turned on, then
	 * this will also print information about the change to
	 * <code>System.out</code>.
	 * 
	 * @param handler
	 *            The new handler; may be <code>null</code> if none.
	 * @return <code>true</code> if the handler changed; <code>false</code>
	 *         otherwise.
	 */
	public final boolean setHandler(final IHandler handler) {
		if (Util.equals(handler, this.handler)) {
			return false;
		}
		
		this.handler = handler;
		string = null;
		
		if ((DEBUG_HANDLERS)
				&& ((DEBUG_HANDLERS_COMMAND_ID == null) || (DEBUG_HANDLERS_COMMAND_ID
						.equals(id)))) {
			System.out.print("HANDLERS >>> Command('" + id 
					+ "' has changed to "); 
			if (handler == null) {
				System.out.println("no handler"); 
			} else {
				System.out.print("'");