diff --git a/lib/galaxy/tools/toolbox/base.py b/lib/galaxy/tools/toolbox/base.py
index 9e469ba9659..969dd39da11 100644
--- a/lib/galaxy/tools/toolbox/base.py
+++ b/lib/galaxy/tools/toolbox/base.py
@@ -978,7 +978,9 @@ class AbstractToolBox( object, Dictifiable ):
if tool_key in val.elems:
self._tool_panel[ key ].elems[ tool_key ] = new_tool
break
- self._tools_by_id[ tool_id ] = new_tool
+ # (Re-)Register the reloaded tool, this will handle
+ # _tools_by_id and _tool_versions_by_id
+ self.register_tool( new_tool )
message = "Reloaded the tool:
"
message += "name: %s
" % old_tool.name
message += "id: %s
" % old_tool.id