diff --git a/synapse/rest/__init__.py b/synapse/rest/__init__.py
index 47896612ce51bbcbf46aaf14762ef82ee30d92a5..f33024e72a5108bd07e28e48048cdaf9d668e2ce 100644
--- a/synapse/rest/__init__.py
+++ b/synapse/rest/__init__.py
@@ -15,8 +15,7 @@
 
 
 from . import (
-    room, events, register, login, profile, public, presence, initial_sync,
-    directory
+    room, events, register, login, profile, presence, initial_sync, directory
 )
 
 
@@ -40,7 +39,6 @@ class RestServletFactory(object):
         register.register_servlets(hs, client_resource)
         login.register_servlets(hs, client_resource)
         profile.register_servlets(hs, client_resource)
-        public.register_servlets(hs, client_resource)
         presence.register_servlets(hs, client_resource)
         initial_sync.register_servlets(hs, client_resource)
         directory.register_servlets(hs, client_resource)
diff --git a/synapse/rest/public.py b/synapse/rest/public.py
deleted file mode 100644
index 3430c8049f1c9f6461a75c613e3af8b46ea93aaa..0000000000000000000000000000000000000000
--- a/synapse/rest/public.py
+++ /dev/null
@@ -1,33 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2014 matrix.org
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""This module contains REST servlets to do with public paths: /public"""
-from twisted.internet import defer
-
-from base import RestServlet, client_path_pattern
-
-
-class PublicRoomListRestServlet(RestServlet):
-    PATTERN = client_path_pattern("/public/rooms$")
-
-    @defer.inlineCallbacks
-    def on_GET(self, request):
-        handler = self.handlers.room_list_handler
-        data = yield handler.get_public_room_list()
-        defer.returnValue((200, data))
-
-
-def register_servlets(hs, http_server):
-    PublicRoomListRestServlet(hs).register(http_server)
diff --git a/synapse/rest/room.py b/synapse/rest/room.py
index 1cbb31e301c0b429588fb0ce89e4290063497faf..3f2530b141a15a87f9720050e7024a027c72f568 100644
--- a/synapse/rest/room.py
+++ b/synapse/rest/room.py
@@ -264,6 +264,17 @@ class JoinRoomAliasServlet(RestServlet):
         defer.returnValue(response)
 
 
+# TODO: Needs unit testing
+class PublicRoomListRestServlet(RestServlet):
+    PATTERN = client_path_pattern("/publicRooms$")
+
+    @defer.inlineCallbacks
+    def on_GET(self, request):
+        handler = self.handlers.room_list_handler
+        data = yield handler.get_public_room_list()
+        defer.returnValue((200, data))
+
+
 # TODO: Needs unit testing
 class RoomMemberListRestServlet(RestServlet):
     PATTERN = client_path_pattern("/rooms/(?P<room_id>[^/]*)/members$")
@@ -424,3 +435,4 @@ def register_servlets(hs, http_server):
     RoomTriggerBackfill(hs).register(http_server)
     RoomMembershipRestServlet(hs).register(http_server)
     RoomSendEventRestServlet(hs).register(http_server)
+    PublicRoomListRestServlet(hs).register(http_server)
diff --git a/webclient/components/matrix/matrix-service.js b/webclient/components/matrix/matrix-service.js
index e467ca40daa3575f930680188926fc15c1fca2b3..aad0960db985c5033d316f71a37a8a04ffa005c5 100644
--- a/webclient/components/matrix/matrix-service.js
+++ b/webclient/components/matrix/matrix-service.js
@@ -235,7 +235,7 @@ angular.module('matrixService', [])
 
         // get a list of public rooms on your home server
         publicRooms: function() {
-            var path = "/public/rooms"
+            var path = "/publicRooms"
             return doRequest("GET", path);
         },