diff --git a/ui/org.eclipse.pde.ui/plugin.properties b/ui/org.eclipse.pde.ui/plugin.properties
index 70f38c4..2ec2bc1 100644
--- a/ui/org.eclipse.pde.ui/plugin.properties
+++ b/ui/org.eclipse.pde.ui/plugin.properties
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000, 2010 IBM Corporation and others.
+# Copyright (c) 2000, 2011 IBM Corporation and others.
 # All rights reserved. This program and the accompanying materials
 # are made available under the terms of the Eclipse Public License v1.0
 # which accompanies this distribution, and is available at
@@ -260,4 +260,5 @@
 structureMergeViewers.manifest.label=Manifest Structure Compare
 structureMergeViewers.plugin.label=Plug-in Structure Compare
 commandParameter.name = The initial search pattern for the artifact search dialog
-consoleFactory.label = Host OSGi Console
\ No newline at end of file
+consoleFactory.label = Host OSGi Console
+importFromRepository.label = Import from repository...
\ No newline at end of file
diff --git a/ui/org.eclipse.pde.ui/plugin.xml b/ui/org.eclipse.pde.ui/plugin.xml
index e3c2e18..9b90153 100644
--- a/ui/org.eclipse.pde.ui/plugin.xml
+++ b/ui/org.eclipse.pde.ui/plugin.xml
@@ -925,6 +925,18 @@
                id="org.eclipse.pde.ui.OpenManifestAction"> 
          </action> 
       </objectContribution>
+      <objectContribution
+            adaptable="false"
+            id="org.eclipse.pde.ui.referencedLibsToolSet"
+            objectClass="org.eclipse.jdt.core.IPackageFragmentRoot">
+         <action
+               class="org.eclipse.pde.internal.ui.views.plugins.ImportFromRepositoryActionDelegate"
+               icon="icons/etool16/imp_extplug.gif"
+               id="org.eclipse.pde.ui.importFromRepo"
+               label="%importFromRepository.label"
+               menubarPath="group.import">
+         </action>
+      </objectContribution>
    </extension>
    <extension
          point="org.eclipse.debug.ui.launchConfigurationTypeImages">
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/pderesources.properties b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/pderesources.properties
index aaa0496..002bc19 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/pderesources.properties
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/pderesources.properties
@@ -1067,7 +1067,7 @@
 TemplateSelectionPage_column_point = Extension Point
 
 ImportActionGroup_binaryWithLinkedContent=Binary Project with &Linked Content
-ImportActionGroup_cannot_import=The selected plug-ins cannot be imported from a repository.
+ImportActionGroup_cannot_import=The selected plug-ins cannot be imported from a repository. The plug-ins do not have an Eclipse-SourceReferences manifest header that can be processed. 
 ImportActionGroup_importContributingPlugin=&Import Contributing Plug-in as
 ImportActionGroup_Repository_project=P&roject from a Repository...
 
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/views/plugins/ImportActionGroup.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/views/plugins/ImportActionGroup.java
index d792f22..1cd3be6 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/views/plugins/ImportActionGroup.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/views/plugins/ImportActionGroup.java
@@ -12,6 +12,7 @@
 
 import java.util.*;
 import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jdt.core.IPackageFragmentRoot;
 import org.eclipse.jface.action.*;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.viewers.ISelection;
@@ -81,7 +82,7 @@
 		}
 	}
 
-	private void handleImport(int importType, IStructuredSelection selection) {
+	static void handleImport(int importType, IStructuredSelection selection) {
 		ArrayList externalModels = new ArrayList();
 		for (Iterator iter = selection.iterator(); iter.hasNext();) {
 			IPluginModelBase model = getModel(iter.next());
@@ -111,7 +112,7 @@
 	 * @param models candidate models
 	 * @return  map of importer to import descriptions
 	 */
-	private Map getImportDescriptions(Shell shell, IPluginModelBase[] models) {
+	private static Map getImportDescriptions(Shell shell, IPluginModelBase[] models) {
 		BundleProjectService service = (BundleProjectService) BundleProjectService.getDefault();
 		try {
 			Map descriptions = service.getImportDescriptions(models); // all possible descriptions
@@ -149,10 +150,23 @@
 		} else if (next instanceof BundleDescription) {
 			model = PDECore.getDefault().getModelManager().findModel((BundleDescription) next);
 		} else if (next instanceof BundleSpecification) {
+			// Required for contents of Target Platform State View
 			BundleDescription desc = (BundleDescription) ((BundleSpecification) next).getSupplier();
 			if (desc != null) {
 				model = PDECore.getDefault().getModelManager().findModel(desc);
 			}
+		} else if (next instanceof IPackageFragmentRoot) {
+			// Required for context menu on PDE classpath container entries
+			IPackageFragmentRoot root = (IPackageFragmentRoot) next;
+			if (root.isExternal()) {
+				String path = root.getPath().toOSString();
+				IPluginModelBase[] externalModels = PDECore.getDefault().getModelManager().getExternalModels();
+				for (int i = 0; i < externalModels.length; i++) {
+					if (path.equals(externalModels[i].getInstallLocation())) {
+						return externalModels[i];
+					}
+				}
+			}
 		}
 		return model;
 
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/views/plugins/ImportFromRepositoryActionDelegate.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/views/plugins/ImportFromRepositoryActionDelegate.java
new file mode 100644
index 0000000..ce41d1f
--- /dev/null
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/views/plugins/ImportFromRepositoryActionDelegate.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2011 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.pde.internal.ui.views.plugins;
+
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.pde.internal.ui.wizards.imports.PluginImportOperation;
+import org.eclipse.ui.IObjectActionDelegate;
+import org.eclipse.ui.IWorkbenchPart;
+
+/**
+ * Action delegate to import a selected object if it represents a plug-in with a
+ * Eclipse-SourceReferences header that can be processed by Team.
+ * 
+ * @see ImportActionGroup
+ */
+public class ImportFromRepositoryActionDelegate implements IObjectActionDelegate {
+
+	/**
+	 * Stores the last selection to pass to import operation
+	 */
+	private ISelection fSelection;
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
+	 */
+	public void run(IAction action) {
+		if (fSelection instanceof IStructuredSelection) {
+			ImportActionGroup.handleImport(PluginImportOperation.IMPORT_FROM_REPOSITORY, (IStructuredSelection) fSelection);
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection)
+	 */
+	public void selectionChanged(IAction action, ISelection selection) {
+		fSelection = selection;
+		boolean enable = false;
+		if (selection instanceof IStructuredSelection && !selection.isEmpty()) {
+			enable = ImportActionGroup.canImport((IStructuredSelection) selection);
+		}
+		action.setEnabled(enable);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IObjectActionDelegate#setActivePart(org.eclipse.jface.action.IAction, org.eclipse.ui.IWorkbenchPart)
+	 */
+	public void setActivePart(IAction action, IWorkbenchPart targetPart) {
+	}
+
+}
