diff --git a/src/bot.ts b/src/bot.ts
index 4969b885fca68c194884d630c0b67d0d2346f9dc..c24f42e94ae014a0f58c1138f8637ff6bf7fb98d 100644
--- a/src/bot.ts
+++ b/src/bot.ts
@@ -340,7 +340,7 @@ export class DiscordBot {
 
     public ThirdpartySearchForChannels(guildId: string, channelName: string): IThirdPartyLookup[] {
         if (channelName.startsWith("#")) {
-            channelName = channelName.substr(1);
+            channelName = channelName.substring(1);
         }
         if (this.bot.guilds.cache.has(guildId) ) {
             const guild = this.bot.guilds.cache.get(guildId);
diff --git a/src/db/postgres.ts b/src/db/postgres.ts
index 0b41112e95378845c20e3d9d18a84705f5f6e549..a3fc00cee282dfbf2d843df8e13da584456064e7 100644
--- a/src/db/postgres.ts
+++ b/src/db/postgres.ts
@@ -26,7 +26,7 @@ const pgp: pgPromise.IMain = pgPromise({
 export class Postgres implements IDatabaseConnector {
     public static ParameterizeSql(sql: string): string {
         return sql.replace(/\$((\w|\d|_)+)+/g, (k) => {
-            return `\${${k.substr("$".length)}}`;
+            return `\${${k.substring("$".length)}}`;
         });
     }
 
@@ -37,7 +37,7 @@ export class Postgres implements IDatabaseConnector {
     }
     public Open() {
         // Hide username:password
-        const logConnString = this.connectionString.substr(
+        const logConnString = this.connectionString.substring(
             this.connectionString.indexOf("@") || 0,
         );
         log.info(`Opening ${logConnString}`);
diff --git a/src/matrixeventprocessor.ts b/src/matrixeventprocessor.ts
index 3a0af9548e0cef50aba399074830c5d28eaee04f..af4eb566a912cc27dae56b4a9c8534264fea7830 100644
--- a/src/matrixeventprocessor.ts
+++ b/src/matrixeventprocessor.ts
@@ -530,7 +530,7 @@ export class MatrixEventProcessor {
             }
         }
         embed.setAuthor(
-            displayName.substr(0, MAX_NAME_LENGTH),
+            displayName.substring(0, MAX_NAME_LENGTH),
             avatarUrl,
             `https://matrix.to/#/${sender}`,
         );
diff --git a/src/matrixroomhandler.ts b/src/matrixroomhandler.ts
index 5a7c4b8c1d7c417b91655c0cb4eddd5b43fe5956..318bb195fffde55da1509d87305fd4cd941d458c 100644
--- a/src/matrixroomhandler.ts
+++ b/src/matrixroomhandler.ts
@@ -146,9 +146,9 @@ export class MatrixRoomHandler {
 
     // tslint:disable-next-line no-any
     public async OnAliasQuery(alias: string): Promise<any> {
-        const aliasLocalpart = alias.substr("#".length, alias.indexOf(":") - 1);
+        const aliasLocalpart = alias.substring("#".length, alias.indexOf(":"));
         log.info("Got request for #", aliasLocalpart);
-        const srvChanPair = aliasLocalpart.substr("_discord_".length).split("_", ROOM_NAME_PARTS);
+        const srvChanPair = aliasLocalpart.substring("_discord_".length).split("_", ROOM_NAME_PARTS);
         if (srvChanPair.length < ROOM_NAME_PARTS || srvChanPair[0] === "" || srvChanPair[1] === "") {
             log.warn(`Alias '${aliasLocalpart}' was missing a server and/or a channel`);
             return;
diff --git a/src/usersyncroniser.ts b/src/usersyncroniser.ts
index 6400ecb7cb866a7a6e6a5c7af00385cba58472cf..51805200672eb67f4ea4d424896b10dde89f7036 100644
--- a/src/usersyncroniser.ts
+++ b/src/usersyncroniser.ts
@@ -114,7 +114,7 @@ export class UserSyncroniser {
             log.info(`Creating new user ${userState.mxUserId}`);
             remoteUser = new RemoteUser(userState.id);
             await this.userStore.linkUsers(
-                userState.mxUserId.substr("@".length),
+                userState.mxUserId.substring("@".length),
                 userState.id,
             );
 
diff --git a/src/util.ts b/src/util.ts
index 2bbf4122b415ccf4bc32a308e62ea8914fd7df2d..2f68f1d3236f1e2085a49ab7aa5394aac68b339e 100644
--- a/src/util.ts
+++ b/src/util.ts
@@ -358,7 +358,7 @@ export class Util {
 
     public static ParseMxid(unescapedMxid: string, escape: boolean = true) {
         const RADIX = 16;
-        const parts = unescapedMxid.substr(1).split(":");
+        const parts = unescapedMxid.substring(1).split(":");
         const domain = parts[1];
         let localpart = parts[0];
         if (escape) {