diff --git a/src/discordas.ts b/src/discordas.ts
index 9a0a198e25847a23c9ce02992997c2bc18426c83..5e66cb799e692c3db8b1facc7560bb2d3eb73963 100644
--- a/src/discordas.ts
+++ b/src/discordas.ts
@@ -75,7 +75,6 @@ async function run(port: number, fileConfig: DiscordBridgeConfig) {
         url: config.bridge.homeserverUrl,
     });
     const provisioner = new Provisioner();
-    // Warn and deprecate old config options.
     const discordstore = new DiscordStore(config.database);
     const discordbot = new DiscordBot(config, discordstore, provisioner);
     const roomhandler = new MatrixRoomHandler(discordbot, config, botUserId, provisioner);
@@ -94,8 +93,17 @@ async function run(port: number, fileConfig: DiscordBridgeConfig) {
                     return await roomhandler.OnAliasQuery.bind(roomhandler)(alias, aliasLocalpart);
                 } catch (err) { log.error("Exception thrown while handling \"onAliasQuery\" event", err); }
             },
-            onEvent: async (request, context) => {
+            onEvent: async (request) => {
                 try {
+                    // Build our own context.
+                    const roomId = request.getData().room_id;
+                    let context = {};
+                    if (roomId) {
+                        const entries  = await discordstore.roomStore.getEntriesByMatrixId(request.getData().room_id);
+                        context = {
+                            rooms: entries[0],
+                        };
+                    }
                     await request.outcomeFrom(Bluebird.resolve(roomhandler.OnEvent(request, context)));
                 } catch (err) {
                     log.error("Exception thrown while handling \"onEvent\" event", err);
@@ -106,6 +114,7 @@ async function run(port: number, fileConfig: DiscordBridgeConfig) {
             },
             thirdPartyLookup: roomhandler.ThirdPartyLookup,
         },
+        disableContext: true,
         domain: config.bridge.domain,
         homeserverUrl: config.bridge.homeserverUrl,
         intentOptions: {
@@ -113,17 +122,14 @@ async function run(port: number, fileConfig: DiscordBridgeConfig) {
                 dontJoin: true, // handled manually
             },
         },
+        // To avoid out of order message sending.
         queue: {
             perRequest: true,
             type: "per_room",
         },
         registration,
-        roomStore: config.database.roomStorePath,
         userStore: config.database.userStorePath,
-        // To avoid out of order message sending.
     });
-    discordbot.setBridge(bridge);
-    discordbot.setRoomHandler(roomhandler);
     log.info("Initing bridge.");
     log.info(`Started listening on port ${port}.`);
 
@@ -134,6 +140,8 @@ async function run(port: number, fileConfig: DiscordBridgeConfig) {
         log.info("Initing bot.");
         provisioner.setStore(discordstore.roomStore);
         roomhandler.setBridge(bridge, discordstore.roomStore);
+        discordbot.setBridge(bridge);
+        discordbot.setRoomHandler(roomhandler);
         await discordbot.run();
         log.info("Discordbot started successfully.");
     } catch (err) {