diff --git a/lib/manager/npm/registry.js b/lib/manager/npm/registry.js
index fb8ae67fdd97c8fef152d88048be660823822ed0..38a7879d19a34779b48b961d411bcb5e0f8b0354 100644
--- a/lib/manager/npm/registry.js
+++ b/lib/manager/npm/registry.js
@@ -10,15 +10,24 @@ const parse = require('github-url-from-git');
 module.exports = {
   setNpmrc,
   getDependency,
+  resetMemCache,
   resetCache,
 };
 
 let map = new Map();
 
+let memcache = {};
+
 let npmrc = null;
 
+function resetMemCache() {
+  logger.debug('resetMemCache()');
+  memcache = {};
+}
+
 function resetCache() {
   map = new Map();
+  resetMemCache();
 }
 
 function setNpmrc(input) {
@@ -31,6 +40,10 @@ function setNpmrc(input) {
 
 async function getDependency(name) {
   logger.trace(`getDependency(${name})`);
+  if (memcache[name]) {
+    logger.debug('Returning cached result');
+    return memcache[name];
+  }
   const scope = name.split('/')[0];
   let regUrl;
   try {
@@ -84,6 +97,7 @@ async function getDependency(name) {
       };
     });
     logger.trace({ dep }, 'dep');
+    memcache[name] = dep;
     return dep;
   } catch (err) {
     if (err.statusCode === 401) {
diff --git a/lib/workers/repository/init/apis.js b/lib/workers/repository/init/apis.js
index 5652443e9e92bb0f11b1e2382b5b800204ae6e8c..3cf04ce5849d101e2af3da235e091370f0c1b0e4 100644
--- a/lib/workers/repository/init/apis.js
+++ b/lib/workers/repository/init/apis.js
@@ -26,6 +26,7 @@ async function initApis(input, token) {
   config = await assignPlatform(config);
   config = await getPlatformConfig(config);
   config.npmrc = config.npmrc || (await platform.getFile('.npmrc'));
+  npmApi.resetMemCache();
   npmApi.setNpmrc(config.npmrc);
   return config;
 }