diff --git a/lib/util/package-rules.js b/lib/util/package-rules.js
index 4dd2dfa8564076edf5ceb6d385165d7d1e88066d..ec95b5edd35d897e4b5ea7b89497327097ea471a 100644
--- a/lib/util/package-rules.js
+++ b/lib/util/package-rules.js
@@ -9,7 +9,14 @@ module.exports = {
 
 function applyPackageRules(inputConfig) {
   let config = { ...inputConfig };
-  const { versionScheme, packageFile, depType, depName, fromVersion } = config;
+  const {
+    versionScheme,
+    packageFile,
+    depType,
+    depName,
+    currentValue,
+    fromVersion,
+  } = config;
   const packageRules = config.packageRules || [];
   logger.trace(
     { depName, packageRules },
@@ -94,9 +101,12 @@ function applyPackageRules(inputConfig) {
       positiveMatch = positiveMatch || !isMatch;
     }
     if (matchCurrentVersion) {
-      if (fromVersion) {
-        const { matches } = versioning(versionScheme);
-        const isMatch = matches(fromVersion, matchCurrentVersion);
+      const { matches, isVersion } = versioning(versionScheme);
+      const compareVersion = isVersion(currentValue)
+        ? currentValue // it's a version so we can match against it
+        : fromVersion; // need to match against this fromVersion, if available
+      if (compareVersion) {
+        const isMatch = matches(compareVersion, matchCurrentVersion);
         positiveMatch = positiveMatch || isMatch;
         negativeMatch = negativeMatch || !isMatch;
       } else {
diff --git a/lib/workers/repository/updates/flatten.js b/lib/workers/repository/updates/flatten.js
index 8257aa8526aa3c9774f1be399558584386613db6..ad56fed416405df3b73b95031b64701cbf47a009 100644
--- a/lib/workers/repository/updates/flatten.js
+++ b/lib/workers/repository/updates/flatten.js
@@ -18,12 +18,12 @@ function flattenUpdates(config, packageFiles) {
       const packageFileConfig = mergeChildConfig(managerConfig, packageFile);
       for (const dep of packageFile.deps) {
         if (dep.updates.length) {
-          let depConfig = mergeChildConfig(packageFileConfig, dep);
+          const depConfig = mergeChildConfig(packageFileConfig, dep);
           delete depConfig.deps;
-          depConfig = applyPackageRules(depConfig);
           for (const update of dep.updates) {
             let updateConfig = mergeChildConfig(depConfig, update);
             delete updateConfig.updates;
+            updateConfig = applyPackageRules(updateConfig);
             // apply major/minor/patch/pin/digest
             updateConfig = mergeChildConfig(
               updateConfig,