public void removeNullElements() throws ConfigurationChangeException {
		// alle Elemente aus der Menge holen einschließlich der nicht aktuellen (versionierten)
		final List<NonMutableElement> nonMutableElements = getNonMutableElements();
		for(Iterator<NonMutableElement> iterator = nonMutableElements.iterator(); iterator.hasNext();) {
			final NonMutableElement nonMutableElement = iterator.next();
			if(getDataModel().getObject(nonMutableElement.getElementId()) == null){
				// Wenn das Objekt nicht existiert, das Objekt aus der Liste entfernen
				iterator.remove();
			}
		}

		// Liste in ein Byte-Array packen und abspeichern
		try {
			final ByteArrayOutputStream out = new ByteArrayOutputStream();
			final Serializer serializer = SerializingFactory.createSerializer(getSerializerVersion(), out);
			if(getObjectSetType().getReferenceType() == ReferenceType.ASSOCIATION) {
				// lose Kopplung, hier muss versioniert abgespeichert werden
				for(NonMutableElement nonMutableElement : nonMutableElements) {
					serializer.writeLong(nonMutableElement.getElementId());
					serializer.writeShort(nonMutableElement.getFromVersion());
					serializer.writeShort(nonMutableElement.getToVersion());
				}
			}
			else {
				// starke Kopplung (nur die aktuellen Elemente werden gespeichert)
				for(NonMutableElement nonMutableElement : nonMutableElements) {
					if(nonMutableElement.getToVersion() == 0) {
						serializer.writeLong(nonMutableElement.getElementId());
					}
				}
			}
			_systemObjectInfo.setConfigurationData(CONFIGURATION_ELEMENTS_IN_NON_MUTABLE_SET, out.toByteArray());
			getConfigurationArea().setTimeOfLastChanges(ConfigConfigurationArea.KindOfLastChange.ConfigurationData);
			out.close();
		}
		catch(Exception ex) {
			final String errorMessage = "Der konfigurierende Datensatz mit den Elementen der Menge " + getNameOrPidOrId() + " konnte nicht geschrieben werden";
			_debug.error(errorMessage, ex);
			throw new ConfigurationChangeException(errorMessage, ex);
		}
	}