diff --git a/synapse/api/auth.py b/synapse/api/auth.py
index e9e3279b9ad39de04c71d1b1f2ed086d193dbe33..54ecbe5b3a1b8a89cf16fb03bd5c4762960d22f7 100644
--- a/synapse/api/auth.py
+++ b/synapse/api/auth.py
@@ -169,6 +169,11 @@ class Auth(object):
                 )
                 _, kick_level = yield self.store.get_ops_levels(event.room_id)
 
+                if kick_level:
+                    kick_level = int(kick_level)
+                else:
+                    kick_level = 5
+
                 if user_level < kick_level:
                     raise AuthError(
                         403, "You cannot kick user %s." % target_user_id
diff --git a/synapse/storage/__init__.py b/synapse/storage/__init__.py
index 7a441391f00ae4fd27fd6c8c6829bcfc177dfb6f..aadaab06e7d8f8c11fd99fbfbe945ee95e5a0c45 100644
--- a/synapse/storage/__init__.py
+++ b/synapse/storage/__init__.py
@@ -23,6 +23,7 @@ from synapse.api.events.room import (
     RoomPowerLevelsEvent,
     RoomAddStateLevelEvent,
     RoomSendEventLevelEvent,
+    RoomOpsPowerLevelsEvent,
 )
 
 from synapse.util.logutils import log_function
@@ -140,6 +141,8 @@ class DataStore(RoomMemberStore, RoomStore,
             self._store_add_state_level(txn, event)
         elif event.type == RoomSendEventLevelEvent.TYPE:
             self._store_send_event_level(txn, event)
+        elif event.type == RoomOpsPowerLevelsEvent.TYPE:
+            self._store_ops_level(txn, event)
 
         vals = {
             "topological_ordering": event.depth,
diff --git a/synapse/storage/room.py b/synapse/storage/room.py
index 3ca07f4350999a32c5047cad85d20b4e171525f0..01ae19031605c551f6d921a3ce13aa308556acfe 100644
--- a/synapse/storage/room.py
+++ b/synapse/storage/room.py
@@ -328,7 +328,7 @@ class RoomStore(SQLBaseStore):
 
         self._simple_insert_txn(
             txn,
-            "room_send_event_levels",
+            "room_ops_levels",
             content,
         )