--- glibc-2.7/sysdeps/unix/sysv/linux/dl-osinfo.h.orig	2007-09-15 23:54:08.000000000 +0100
+++ glibc-2.7/sysdeps/unix/sysv/linux/dl-osinfo.h	2008-08-20 09:26:26.000000000 +0100
@@ -83,6 +83,10 @@
   int parts;
   char *cp;
   struct utsname uts;
+  int dotsfound = 0;
+  int versionindex = 0;
+  char *choppoint;
+
 
   /* Try the uname system call.  */
   if (__uname (&uts))
@@ -102,8 +106,34 @@
   else
     buf = uts.release;
 
+  /* We are only interested in the first three kernel numbers, so */
+  /* chop off anything past that: */
+
+  choppoint = buf;
+  while (1)
+    {
+      versionindex++;
+      if (versionindex == 63) break;
+      if (*choppoint == '.') dotsfound++;
+      choppoint++;
+      if (dotsfound == 2)
+      {
+        if (*choppoint == '0' || *choppoint == '1'
+          || *choppoint == '2' || *choppoint == '3'
+          || *choppoint == '4' || *choppoint == '5'
+          || *choppoint == '6' || *choppoint == '7'
+          || *choppoint == '8' || *choppoint == '9')
+          continue;
+        else
+          {
+            *choppoint = 0;
+            break;
+          }
+      }
+    }
+
   /* Now convert it into a number.  The string consists of at most
-     three parts.  */
+     three parts.  Now it does, anyway.  ;-)  */
   version = 0;
   parts = 0;
   cp = buf;
