diff --git a/meta/classes-recipe/gnomebase.bbclass b/meta/classes-recipe/gnomebase.bbclass
index 57933dda71..e5aac95a16 100644
--- a/meta/classes-recipe/gnomebase.bbclass
+++ b/meta/classes-recipe/gnomebase.bbclass
@@ -5,7 +5,12 @@
 #
 
 def gnome_verdir(v):
-    return ".".join(v.split(".")[:-1]) or v
+    # GNOME hosts tarballs under the major.minor directory (major only for
+    # two-component versions). Take the first two components rather than
+    # stripping the last, so four-component versions (e.g. 0.21.8.2 -> 0.21)
+    # resolve correctly.
+    parts = v.split(".")
+    return ".".join(parts[:2] if len(parts) >= 3 else parts[:-1]) or v
 
 
 GNOME_COMPRESS_TYPE ?= "xz"
