--- a/Allura/allura/model/project.py
+++ b/Allura/allura/model/project.py
@@ -343,17 +343,7 @@
         return roles
 
     def install_app(self, ep_name, mount_point=None, mount_label=None, ordinal=0, **override_options):
-        for ep in pkg_resources.iter_entry_points('allura', ep_name):
-            App = ep.load()
-            break
-        else:
-            # Try case-insensitive install
-            for ep in pkg_resources.iter_entry_points('allura'):
-                if ep.name.lower() == ep_name:
-                    App = ep.load()
-                    break
-            else: # pragma no cover
-                raise exc.HTTPNotFound, ep_name
+        App = g.entry_points['tool'][self.tool_name]
         if not mount_point:
             base_mount_point = mount_point = App.default_mount_point
             for x in range(10):
@@ -375,7 +365,7 @@
             meta=dict(tool_type=ep_name, mount_point=options['mount_point'], mount_label=options['mount_label']))
         cfg = AppConfig(
             project_id=self._id,
-            tool_name=ep.name,
+            tool_name=self.tool_name,
             options=options)
         app = App(self, cfg)
         with h.push_config(c, project=self, app=app):
@@ -538,7 +528,7 @@
         try:
             result = self._loaded_ep
         except AttributeError:
-            result = self._loaded_ep = g.tool_entry_points[self.tool_name]
+            result = self._loaded_ep = g.entry_points['tool'][self.tool_name]
         return result
 
     def script_name(self):