diff --git a/core/plugins/org.eclipse.dltk.core/model/org/eclipse/dltk/core/IBuildpathContainerExtension3.java b/core/plugins/org.eclipse.dltk.core/model/org/eclipse/dltk/core/IBuildpathContainerExtension3.java
new file mode 100644
index 0000000..6f32172
--- /dev/null
+++ b/core/plugins/org.eclipse.dltk.core/model/org/eclipse/dltk/core/IBuildpathContainerExtension3.java
@@ -0,0 +1,17 @@
+package org.eclipse.dltk.core;
+
+import java.util.Map;
+
+public interface IBuildpathContainerExtension3 {
+
+	/**
+	 * Answers container'a additional attributes. May be used to store various
+	 * container data e.g. version identifier.
+	 * <p>
+	 * Should not return <code>null</code>.
+	 * </p>
+	 * 
+	 * @return Map<String, String> - collection of attributes
+	 */
+	public Map<String, String> getAttributes();
+}
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/wizards/buildpath/BPUserLibraryElement.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/wizards/buildpath/BPUserLibraryElement.java
index 3736086..ee7e62d 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/wizards/buildpath/BPUserLibraryElement.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/wizards/buildpath/BPUserLibraryElement.java
@@ -18,12 +18,14 @@
 import org.eclipse.core.runtime.Path;
 import org.eclipse.dltk.core.DLTKCore;
 import org.eclipse.dltk.core.IBuildpathContainer;
+import org.eclipse.dltk.core.IBuildpathContainerExtension3;
 import org.eclipse.dltk.core.IBuildpathEntry;
 import org.eclipse.dltk.core.IScriptProject;
 
 public class BPUserLibraryElement {
 
-	private class UpdatedBuildpathContainer implements IBuildpathContainer {
+	private class UpdatedBuildpathContainer
+			implements IBuildpathContainer, IBuildpathContainerExtension3 {
 		public IBuildpathEntry[] getBuildpathEntries() {
 			BPListElement[] children = getChildren();
 			IBuildpathEntry[] entries = new IBuildpathEntry[children.length];
@@ -46,6 +48,11 @@
 			return BPUserLibraryElement.this.getPath();
 		}
 
+		public Map<String, String> getAttributes() {
+			return fAttributes != null
+					? Collections.<String, String>unmodifiableMap(fAttributes)
+					: Collections.<String, String> emptyMap();
+		}
 	}
 
 	private String fName;
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/preferences/UserLibraryPreferencePage.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/preferences/UserLibraryPreferencePage.java
index 8a6dc74..5cf6fe3 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/preferences/UserLibraryPreferencePage.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/preferences/UserLibraryPreferencePage.java
@@ -62,7 +62,6 @@
 import org.eclipse.dltk.internal.core.UserLibraryManager;
 import org.eclipse.dltk.internal.corext.util.Messages;
 import org.eclipse.dltk.internal.ui.IUIConstants;
-import org.eclipse.dltk.ui.dialogs.StatusInfo;
 import org.eclipse.dltk.internal.ui.wizards.BuildpathAttributeConfiguration;
 import org.eclipse.dltk.internal.ui.wizards.buildpath.AccessRulesDialog;
 import org.eclipse.dltk.internal.ui.wizards.buildpath.BPListElement;
@@ -84,6 +83,7 @@
 import org.eclipse.dltk.internal.ui.wizards.dialogfields.StringDialogField;
 import org.eclipse.dltk.internal.ui.wizards.dialogfields.TreeListDialogField;
 import org.eclipse.dltk.ui.DLTKUIPlugin;
+import org.eclipse.dltk.ui.dialogs.StatusInfo;
 import org.eclipse.dltk.ui.util.ExceptionHandler;
 import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.dialogs.IDialogSettings;
@@ -1127,10 +1127,6 @@
 				IBuildpathContainer updatedContainer = element
 						.getUpdatedContainer();
 				try {
-					if (initializer instanceof UserLibraryBuildpathContainerInitializer) {
-						((UserLibraryBuildpathContainerInitializer) initializer)
-								.setToolkit(getLanguageToolkit());
-					}
 					initializer.requestBuildpathContainerUpdate(path, project,
 							updatedContainer);
 				} catch (CoreException e) {
