diff --git a/manifests/pip.pp b/manifests/pip.pp
index 25856fc7..6737cdf0 100644
--- a/manifests/pip.pp
+++ b/manifests/pip.pp
@@ -215,14 +215,24 @@
         }
 
         # Unfortunately this is the smartest way of getting the latest available package version with pip as of now
-        # Note: we DO need to repeat ourselves with "from version" in both grep and sed as on some systems pip returns
-        # more than one line with paretheses.
-        $latest_version = join([
-            "${pip_install} ${legacy_resolver} ${pypi_index} ${pypi_extra_index} ${proxy_flag}",
-            " ${install_args} ${install_editable} '${real_pkgname}==9!0dev0+x' 2>&1",
+        $version_processing_commands = if $install_args and $install_args =~ /--pre/ {
+          [
             " | sed -nE 's/.*\\(from versions: (.*, )*(.*)\\)/\\2/p'",
             ' | tr -d "[:space:]"',
-        ])
+          ]
+        } else {
+          [
+            " | sed -nE 's/.*\\(from versions: ([^\\)]*)\\)/\\1/p'",
+            ' | awk \'BEGIN {RS=", "} {if ($0 !~ /(a|b|rc|dev)/) {gsub(/\n/,"");stable[arraylen++]=$0}} END {print stable[arraylen-1] }\'',
+          ]
+        }
+
+        $latest_version = join(
+          [
+            "${pip_install} ${legacy_resolver} ${pypi_index} ${pypi_extra_index} ${proxy_flag}",
+            " ${install_args} ${install_editable} '${real_pkgname}==9!0dev0+x' 2>&1",
+          ] + $version_processing_commands,
+        )
 
         # Packages with underscores in their names are listed with dashes in their place in `pip freeze` output
         $pkgname_with_dashes            = regsubst($real_pkgname, '_', '-', 'G')