The following obvious patch is needed for the memcoll change in 6.0. I didn't notice it in my quick test as I had forgotten I changed xmemcoll to memcoll in uniq in my tree. I only noticed errno non zero for me when I redirect uniq to >/dev/null but I guess there are a million other platform/invocation combinations that will trigger this. --- memcoll.c 2006-08-14 21:17:25.000000000 +0000 +++ memcoll-errno.c 2006-08-16 06:50:28.000000000 +0000 @@ -43,7 +43,10 @@ the buffers using strcoll on each substring. */ if (s1len == s2len && memcmp (s1, s2, s1len) == 0) - diff = 0; + { + diff = 0; + errno = 0; + } else { char n1 = s1[s1len];