diff --git a/lib/workers/repository/process/lookup/index.js b/lib/workers/repository/process/lookup/index.js
index 715f13c14504428ff3af934e3fbebc3608b0086d..418cf6007a4db39472862d4fe1a2ad3ab3d8ef8e 100644
--- a/lib/workers/repository/process/lookup/index.js
+++ b/lib/workers/repository/process/lookup/index.js
@@ -215,10 +215,13 @@ async function lookupUpdates(config) {
       update.isBump = true;
       if (getMajor(toVersion) > getMajor(fromVersion)) {
         update.updateType = 'major';
-      } else if (getMinor(toVersion) > getMinor(fromVersion)) {
-        update.updateType = 'minor';
-      } else {
+      } else if (
+        config.separateMinorPatch &&
+        getMinor(toVersion) === getMinor(fromVersion)
+      ) {
         update.updateType = 'patch';
+      } else {
+        update.updateType = 'minor';
       }
     }
   }
diff --git a/test/workers/repository/process/lookup/__snapshots__/index.spec.js.snap b/test/workers/repository/process/lookup/__snapshots__/index.spec.js.snap
index a81bb2dc55be4e25ae8ca2390ecb3f0a60b0e617..b62afc274869ae828daf981442a408111b66b29b 100644
--- a/test/workers/repository/process/lookup/__snapshots__/index.spec.js.snap
+++ b/test/workers/repository/process/lookup/__snapshots__/index.spec.js.snap
@@ -981,7 +981,7 @@ Array [
 ]
 `;
 
-exports[`manager/npm/lookup .lookupUpdates() supports in-range tilde updates 1`] = `
+exports[`manager/npm/lookup .lookupUpdates() supports in-range tilde patch updates 1`] = `
 Array [
   Object {
     "canBeUnpublished": false,
@@ -1011,6 +1011,36 @@ Array [
 ]
 `;
 
+exports[`manager/npm/lookup .lookupUpdates() supports in-range tilde updates 1`] = `
+Array [
+  Object {
+    "canBeUnpublished": false,
+    "fromVersion": "1.0.0",
+    "isBump": true,
+    "isRange": true,
+    "isSingleVersion": false,
+    "newMajor": 1,
+    "newMinor": 0,
+    "newValue": "~1.0.1",
+    "releaseTimestamp": "2014-03-11T18:47:17.560Z",
+    "toVersion": "1.0.1",
+    "updateType": "minor",
+  },
+  Object {
+    "canBeUnpublished": false,
+    "fromVersion": "1.0.0",
+    "isRange": true,
+    "isSingleVersion": false,
+    "newMajor": 1,
+    "newMinor": 4,
+    "newValue": "~1.4.1",
+    "releaseTimestamp": "2015-05-17T04:25:07.299Z",
+    "toVersion": "1.4.1",
+    "updateType": "minor",
+  },
+]
+`;
+
 exports[`manager/npm/lookup .lookupUpdates() supports majorgte updates 1`] = `
 Array [
   Object {
diff --git a/test/workers/repository/process/lookup/index.spec.js b/test/workers/repository/process/lookup/index.spec.js
index 3a88eab72e1a3cee73ca7633d6554ff8f4a1840b..6e78b359aaf25e40908c84f77c2eb63f7ae6a682 100644
--- a/test/workers/repository/process/lookup/index.spec.js
+++ b/test/workers/repository/process/lookup/index.spec.js
@@ -843,6 +843,17 @@ describe('manager/npm/lookup', () => {
         .reply(200, qJson);
       expect((await lookup.lookupUpdates(config)).updates).toMatchSnapshot();
     });
+    it('supports in-range tilde patch updates', async () => {
+      config.rangeStrategy = 'bump';
+      config.currentValue = '~1.0.0';
+      config.depName = 'q';
+      config.separateMinorPatch = true;
+      config.purl = 'pkg:npm/q';
+      nock('https://registry.npmjs.org')
+        .get('/q')
+        .reply(200, qJson);
+      expect((await lookup.lookupUpdates(config)).updates).toMatchSnapshot();
+    });
     it('supports in-range gte updates', async () => {
       config.rangeStrategy = 'bump';
       config.currentValue = '>=1.0.0';