* bug fixing
* local user libraries are working
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 612cfbc..db59df3 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
@@ -56,6 +56,8 @@
 import org.eclipse.dltk.core.IDLTKLanguageToolkit;
 import org.eclipse.dltk.core.IScriptProject;
 import org.eclipse.dltk.core.ModelException;
+import org.eclipse.dltk.core.environment.EnvironmentManager;
+import org.eclipse.dltk.core.environment.EnvironmentPathUtils;
 import org.eclipse.dltk.internal.core.UserLibraryBuildpathContainerInitializer;
 import org.eclipse.dltk.internal.core.UserLibraryManager;
 import org.eclipse.dltk.internal.corext.util.Messages;
@@ -162,7 +164,9 @@
 		/*
 		 * (non-Javadoc)
 		 * 
-		 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+		 * @see
+		 * org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt
+		 * .widgets.Composite)
 		 */
 		protected Control createDialogArea(Composite parent) {
 			Composite composite = (Composite) super.createDialogArea(parent);
@@ -183,7 +187,10 @@
 		/*
 		 * (non-Javadoc)
 		 * 
-		 * @see org.eclipse.jdt.internal.ui.wizards.dialogfields.IDialogFieldListener#dialogFieldChanged(org.eclipse.jdt.internal.ui.wizards.dialogfields.DialogField)
+		 * @see
+		 * org.eclipse.jdt.internal.ui.wizards.dialogfields.IDialogFieldListener
+		 * #dialogFieldChanged(org.eclipse.jdt.internal.ui.wizards.dialogfields.
+		 * DialogField)
 		 */
 		public void dialogFieldChanged(DialogField field) {
 			if (field == fNameField) {
@@ -325,6 +332,7 @@
 
 		/*
 		 * @see org.eclipse.jface.dialogs.Dialog#isResizable()
+		 * 
 		 * @since 3.4
 		 */
 		protected boolean isResizable() {
@@ -342,7 +350,9 @@
 		/*
 		 * (non-Javadoc)
 		 * 
-		 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+		 * @see
+		 * org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt
+		 * .widgets.Composite)
 		 */
 		protected Control createDialogArea(Composite parent) {
 			Composite composite = (Composite) super.createDialogArea(parent);
@@ -375,7 +385,11 @@
 		/*
 		 * (non-Javadoc)
 		 * 
-		 * @see org.eclipse.jdt.internal.ui.wizards.dialogfields.IStringButtonAdapter#changeControlPressed(org.eclipse.jdt.internal.ui.wizards.dialogfields.DialogField)
+		 * @see
+		 * org.eclipse.jdt.internal.ui.wizards.dialogfields.IStringButtonAdapter
+		 * #
+		 * changeControlPressed(org.eclipse.jdt.internal.ui.wizards.dialogfields
+		 * .DialogField)
 		 */
 		public void changeControlPressed(DialogField field) {
 			String label = isSave() ? PreferencesMessages.UserLibraryPreferencePage_LoadSaveDialog_filedialog_save_title
@@ -434,7 +448,10 @@
 		/*
 		 * (non-Javadoc)
 		 * 
-		 * @see org.eclipse.jdt.internal.ui.wizards.dialogfields.IDialogFieldListener#dialogFieldChanged(org.eclipse.jdt.internal.ui.wizards.dialogfields.DialogField)
+		 * @see
+		 * org.eclipse.jdt.internal.ui.wizards.dialogfields.IDialogFieldListener
+		 * #dialogFieldChanged(org.eclipse.jdt.internal.ui.wizards.dialogfields.
+		 * DialogField)
 		 */
 		public void dialogFieldChanged(DialogField field) {
 			if (field == fLocationField) {
@@ -451,8 +468,10 @@
 		/*
 		 * (non-Javadoc)
 		 * 
-		 * @see org.eclipse.jdt.internal.ui.wizards.dialogfields.IListAdapter#customButtonPressed(org.eclipse.jdt.internal.ui.wizards.dialogfields.ListDialogField,
-		 *      int)
+		 * @seeorg.eclipse.jdt.internal.ui.wizards.dialogfields.IListAdapter#
+		 * customButtonPressed
+		 * (org.eclipse.jdt.internal.ui.wizards.dialogfields.ListDialogField,
+		 * int)
 		 */
 		public void customButtonPressed(ListDialogField field, int index) {
 		}
@@ -460,7 +479,9 @@
 		/*
 		 * (non-Javadoc)
 		 * 
-		 * @see org.eclipse.jdt.internal.ui.wizards.dialogfields.IListAdapter#selectionChanged(org.eclipse.jdt.internal.ui.wizards.dialogfields.ListDialogField)
+		 * @seeorg.eclipse.jdt.internal.ui.wizards.dialogfields.IListAdapter#
+		 * selectionChanged
+		 * (org.eclipse.jdt.internal.ui.wizards.dialogfields.ListDialogField)
 		 */
 		public void selectionChanged(ListDialogField field) {
 		}
@@ -468,7 +489,9 @@
 		/*
 		 * (non-Javadoc)
 		 * 
-		 * @see org.eclipse.jdt.internal.ui.wizards.dialogfields.IListAdapter#doubleClicked(org.eclipse.jdt.internal.ui.wizards.dialogfields.ListDialogField)
+		 * @seeorg.eclipse.jdt.internal.ui.wizards.dialogfields.IListAdapter#
+		 * doubleClicked
+		 * (org.eclipse.jdt.internal.ui.wizards.dialogfields.ListDialogField)
 		 */
 		public void doubleClicked(ListDialogField field) {
 			List selectedElements = fExportImportList.getSelectedElements();
@@ -910,8 +933,12 @@
 				null,
 
 				PreferencesMessages.UserLibraryPreferencePage_libraries_load_button,
-				PreferencesMessages.UserLibraryPreferencePage_libraries_save_button/*,
-				null, "Detect" */};
+				PreferencesMessages.UserLibraryPreferencePage_libraries_save_button /*
+																					 * ,
+																					 * null
+																					 * ,
+																					 * "Detect"
+																					 */};
 
 		fLibraryList = new TreeListDialogField(adapter, buttonLabels,
 				new BPListLabelProvider());
@@ -956,7 +983,8 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.jface.preference.PreferencePage#applyData(java.lang.Object)
+	 * @see
+	 * org.eclipse.jface.preference.PreferencePage#applyData(java.lang.Object)
 	 */
 	public void applyData(Object data) {
 		if (data instanceof Map) {
@@ -990,7 +1018,9 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
+	 * @see
+	 * org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets
+	 * .Composite)
 	 */
 	public void createControl(Composite parent) {
 		super.createControl(parent);
@@ -1117,8 +1147,8 @@
 			IPath path = new Path(DLTKCore.USER_LIBRARY_CONTAINER_ID)
 					.append(name);
 			try {
-				initializer.requestBuildpathContainerUpdate(path, project,
-						null);
+				initializer
+						.requestBuildpathContainerUpdate(path, project, null);
 			} catch (CoreException e) {
 				multiStatus.add(e.getStatus());
 			}
@@ -1174,7 +1204,7 @@
 		field.enableButton(IDX_UP, canMoveUp(list));
 		field.enableButton(IDX_DOWN, canMoveDown(list));
 		field.enableButton(IDX_SAVE, field.getSize() > 0);
-//		field.enableButton(IDX_DETECT, isDetectionSupported());
+		// field.enableButton(IDX_DETECT, isDetectionSupported());
 	}
 
 	protected void doCustomButtonPressed(TreeListDialogField field, int index) {
@@ -1585,8 +1615,8 @@
 			Object parent) {
 		String lastUsedPath;
 		if (existing != null) {
-			lastUsedPath = existing.getPath().removeLastSegments(1)
-					.toOSString();
+			lastUsedPath = EnvironmentPathUtils.getLocalPath(
+					existing.getPath().removeLastSegments(1)).toOSString();
 		} else {
 			lastUsedPath = fDialogSettings
 					.get(IUIConstants.DIALOGSTORE_LASTEXTSOURCE);
@@ -1619,7 +1649,9 @@
 		IPath path = Path.fromOSString(res).makeAbsolute();
 
 		BPListElement curr = new BPListElement(parent, null,
-				IBuildpathEntry.BPE_LIBRARY, path, null, true);
+				IBuildpathEntry.BPE_LIBRARY, EnvironmentPathUtils.getFullPath(
+						EnvironmentManager.getLocalEnvironment(), path), null,
+				true);
 		elems[0] = curr;
 
 		fDialogSettings.put(IUIConstants.DIALOGSTORE_LASTEXTSOURCE, dialog