diff --git a/source/dub/commandline.d b/source/dub/commandline.d
index e1a385b..fb6186e 100644
--- a/source/dub/commandline.d
+++ b/source/dub/commandline.d
@@ -1116,8 +1116,8 @@
 
 		enforce(package_name.length, "No valid root package found - aborting.");
 
-		auto pack = dub.packageManager.getBestPackage(
-            package_name, ver.length ? Dependency(ver) : Dependency.any);
+		const vers = ver.length ? VersionRange.fromString(ver) : VersionRange.Any;
+		auto pack = dub.packageManager.getBestPackage(package_name, vers);
 
 		enforce(pack, format!"Failed to find a package named '%s%s' locally."(package_name,
 			ver == "" ? "" : ("@" ~ ver)
diff --git a/source/dub/dub.d b/source/dub/dub.d
index c91e990..e430a46 100644
--- a/source/dub/dub.d
+++ b/source/dub/dub.d
@@ -660,7 +660,7 @@
 
 		auto tool = "dscanner";
 
-		auto tool_pack = m_packageManager.getBestPackage(tool, ">=0.0.0");
+		auto tool_pack = m_packageManager.getBestPackage(tool);
 		if (!tool_pack) tool_pack = m_packageManager.getBestPackage(tool, "~master");
 		if (!tool_pack) {
 			logInfo("Hint", Color.light_blue, "%s is not present, getting and storing it user wide", tool);
@@ -1155,7 +1155,7 @@
 	private void runCustomInitialization(NativePath path, string type, string[] runArgs)
 	{
 		string packageName = type;
-		auto template_pack = m_packageManager.getBestPackage(packageName, ">=0.0.0");
+		auto template_pack = m_packageManager.getBestPackage(packageName);
 		if (!template_pack) template_pack = m_packageManager.getBestPackage(packageName, "~master");
 		if (!template_pack) {
 			logInfo("%s is not present, getting and storing it user wide", packageName);
diff --git a/source/dub/packagemanager.d b/source/dub/packagemanager.d
index 9c5067a..853e637 100644
--- a/source/dub/packagemanager.d
+++ b/source/dub/packagemanager.d
@@ -355,6 +355,18 @@
 
 	/** Searches for the latest version of a package matching the given dependency.
 	*/
+	Package getBestPackage(string name, VersionRange range = VersionRange.Any)
+	{
+		return this.getBestPackage(name, Dependency(range));
+	}
+
+	/// Ditto
+	Package getBestPackage(string name, Version vers)
+	{
+		return this.getBestPackage(name, VersionRange(vers, vers));
+	}
+
+	/// Ditto
 	Package getBestPackage(string name, Dependency version_spec, bool enable_overrides = true)
 	{
 		Package ret;
diff --git a/source/dub/project.d b/source/dub/project.d
index 28fcb3a..79da73a 100644
--- a/source/dub/project.d
+++ b/source/dub/project.d
@@ -521,7 +521,7 @@
 							return resolveSubPackage(tmp, subname, true);
 						},
 						(VersionRange range) {
-							return m_packageManager.getBestPackage(dep.name, vspec);
+							return m_packageManager.getBestPackage(dep.name, range);
 						},
 					);
 				} else if (m_dependencies.canFind!(d => getBasePackageName(d.name) == basename)) {