Jens,
I like your modified UDF
But I would think that a version 1 and a version 10 of a package have to be different
Also a version 10 seems older than a version 4
 Code:
CompareVersions("0100","01") ?
CompareVersions("01","0100") ?
CompareVersions("100","1") ?
CompareVersions("1.0","10.0") ?
compareversions("10.0","4.0") ?

returns
 Code:
0
0
0
0
-1

I would presume that only the first part of a version, before the first delimiter (dot or comma) should be handled in a different way. More like in the "Human Sort" way.