diff --git a/lib/galaxy/tools/toolbox/base.py b/lib/galaxy/tools/toolbox/base.py
index 2a2b998b253..87573e8d6d0 100644
--- a/lib/galaxy/tools/toolbox/base.py
+++ b/lib/galaxy/tools/toolbox/base.py
@@ -397,6 +397,11 @@ class AbstractToolBox( Dictifiable, ManagesIntegratedToolPanelMixin, object ):
return self._tool_versions_by_id[ tool_id ][ tool_version ]
# tool_id exactly matches an available tool by id (which is 'old' tool_id or guid)
return self._tools_by_id[ tool_id ]
+ elif exact:
+ # We're looking for an exact match, so we skip lineage and
+ # versionless mapping, though we may want to check duplicate
+ # toolsheds
+ continue
# exact tool id match not found, or all versions requested, search for other options, e.g. migrated tools or different versions
rval = []
tool_lineage = self._lineage_map.get( tool_id )
diff --git a/lib/galaxy/webapps/galaxy/controllers/admin.py b/lib/galaxy/webapps/galaxy/controllers/admin.py
index 7757e5aada0..d061506bc2a 100644
--- a/lib/galaxy/webapps/galaxy/controllers/admin.py
+++ b/lib/galaxy/webapps/galaxy/controllers/admin.py
@@ -445,7 +445,7 @@ class ToolVersionListGrid( grids.Grid ):
toolbox = trans.app.toolbox
if toolbox.has_tool( tool_version.tool_id, exact=True ):
link = url_for( controller='tool_runner', tool_id=tool_version.tool_id )
- link_str = '' % link
+ link_str = '' % link
return '%s%s
' % ( link_str, tool_version.tool_id )
return tool_version.tool_id
@@ -455,8 +455,8 @@ class ToolVersionListGrid( grids.Grid ):
toolbox = trans.app.toolbox
for tool_id in tool_version.get_version_ids( trans.app ):
if toolbox.has_tool( tool_id, exact=True ):
- link = url_for( controller='tool_runner', tool_id=tool_version.tool_id )
- link_str = '' % link
+ link = url_for( controller='tool_runner', tool_id=tool_id )
+ link_str = '' % link
tool_ids_str += '%s%s
' % ( link_str, tool_id )
else:
tool_ids_str += '%s
' % tool_id