@Override
		public void propertyChange(PropertyChangeEvent evt)
		{
			CompoundPainter<?> painter = ref.get();

			if (painter == null)
			{
				AbstractPainter<?> src = (AbstractPainter<?>) evt.getSource();
				src.removePropertyChangeListener(this);
			}
			else
			{
				String property = evt.getPropertyName();

				if ("dirty".equals(property) && evt.getNewValue() == Boolean.FALSE)
				{
					return;
				}

				painter.setDirty(true);
			}
		}