diff --git a/lib/versioning/pep440/range.ts b/lib/versioning/pep440/range.ts
index 979e970ad0bded0bff1c48d0b4dcf11ee910cf39..280dd69ea1f052c8c2ee92b2b610f20200e608e4 100644
--- a/lib/versioning/pep440/range.ts
+++ b/lib/versioning/pep440/range.ts
@@ -59,7 +59,7 @@ export function getNewValue({
     logger.warn('Empty currentValue: ' + currentValue);
     return currentValue;
   }
-  if (rangeStrategy === 'replace') {
+  if (rangeStrategy === 'auto' || rangeStrategy === 'replace') {
     if (satisfies(newVersion, currentValue)) {
       return currentValue;
     }
diff --git a/lib/versioning/poetry/index.ts b/lib/versioning/poetry/index.ts
index 54499f89a15f373a3dc8b3e361e1391aa8e0f715..2b75d1d8c33d5f563eaf4cd736b1803d62ea7bad 100644
--- a/lib/versioning/poetry/index.ts
+++ b/lib/versioning/poetry/index.ts
@@ -80,18 +80,18 @@ const isGreaterThan = (a: string, b: string): boolean =>
   pep440.isGreaterThan(a, b);
 
 const isLessThanRange = (version: string, range: string): boolean =>
+  npm.isVersion(padZeroes(version)) &&
   npm.isLessThanRange(padZeroes(version), poetry2npm(range));
 
 export const isValid = (input: string): string | boolean =>
   npm.isValid(poetry2npm(input));
 
-const isStable = (version: string): boolean =>
-  version && npm.isStable(padZeroes(version));
+const isStable = (version: string): boolean => pep440.isStable(version);
 
-const isVersion = (input: string): string | boolean =>
-  npm.isVersion(padZeroes(input));
+const isVersion = (input: string): string | boolean => pep440.isVersion(input);
 
 const matches = (version: string, range: string): boolean =>
+  npm.isVersion(padZeroes(version)) &&
   npm.matches(padZeroes(version), poetry2npm(range));
 
 const getSatisfyingVersion = (versions: string[], range: string): string =>