diff --git a/module/obmc/wsgi/apps/rest_dbus.py b/module/obmc/wsgi/apps/rest_dbus.py
index 71c8788..cda23df 100644
--- a/module/obmc/wsgi/apps/rest_dbus.py
+++ b/module/obmc/wsgi/apps/rest_dbus.py
@@ -1181,27 +1181,6 @@
         return self.Checker(content_type, callback)
 
 
-class CheckURLPlugin(object):
-    ''' Ensures that anything read and written using the old /org/openbmc route
-        would not be allowed. '''
-    name = 'url_checker'
-    api = 2
-
-    class Checker:
-        def __init__(self, callback):
-            self.callback = callback
-            self.error_str = "org.freedesktop.DBus.Error.FileNotFound: path " \
-                             + "or object not found: '%s'"
-
-        def __call__(self, *a, **kw):
-            if "/org/openbmc" in request.url:
-                abort(404, self.error_str % (request.url))
-            return self.callback(*a, **kw)
-
-    def apply(self, callback, route):
-        return self.Checker(callback)
-
-
 class App(Bottle):
     def __init__(self, **kw):
         super(App, self).__init__(autojson=False)
@@ -1228,7 +1207,6 @@
         self.install(JsonApiResponsePlugin(self))
         self.install(JsonApiRequestPlugin())
         self.install(JsonApiRequestTypePlugin())
-        self.install(CheckURLPlugin())
 
     def install_hooks(self):
         self.error_handler_type = type(self.default_error_handler)
