diff --git a/emper/lib/LinuxVersion.cpp b/emper/lib/LinuxVersion.cpp
index f268d050dc62f992be090bcad00b0896c26c1cdd..e4306b2f782391ac07db1b2ed1b5930f92635a47 100644
--- a/emper/lib/LinuxVersion.cpp
+++ b/emper/lib/LinuxVersion.cpp
@@ -2,7 +2,6 @@
 // Copyright © 2021 Florian Fischer
 #include "lib/LinuxVersion.hpp"
 
-#include <cassert>
 #include <cerrno>
 #include <cstdlib>
 
@@ -47,7 +46,8 @@ auto LinuxVersion::compare(const std::string& s) -> int {
 			dot_pos2 = s.size();
 		} else {
 			dot_pos2 = s.find('.', last_dot_pos2);
-			assert(dot_pos2 != std::string::npos);
+			// The string to compare has less dot-separated components
+			if (dot_pos2 == std::string::npos) return 0;
 		}
 
 		long n1 = checked_strtol(this->version.substr(last_dot_pos, dot_pos - last_dot_pos));
diff --git a/tests/lib/LinuxVersionTest.cpp b/tests/lib/LinuxVersionTest.cpp
index b14ec049c47731467a0fe84b80d082a716f57188..4f171a74b2a5a98d91dc0725cf90405328b3a12c 100644
--- a/tests/lib/LinuxVersionTest.cpp
+++ b/tests/lib/LinuxVersionTest.cpp
@@ -73,3 +73,9 @@ TEST(LinuxVersion, ge) {
 	ASSERT_TRUE(TestLinuxVersion::ge("5.14.0", "4.13"));
 	ASSERT_TRUE(TestLinuxVersion::ge("5.14.0", "5.14.0"));
 }
+
+// NOLINTNEXTLINE(modernize-use-trailing-return-type)
+TEST(LinuxVersion, real_world) {
+	ASSERT_TRUE(TestLinuxVersion::le("5.15.0-0.bpo.2-amd64", "5.15.0"));
+	ASSERT_TRUE(TestLinuxVersion::ge("5.17.0", "5.15.0-0.bpo.2-amd64"));
+}