diff -r 44d7bec477d5 -r eb67f1953710 razor.c --- a/razor.c Wed Mar 12 13:27:26 2008 -0400 +++ b/razor.c Tue Mar 18 11:44:28 2008 -0400 @@ -2004,7 +2004,8 @@ for (sp = spkgs; sp < send; sp++) { while (up < uend && strcmp(&spool[sp->name], &upool[up->name]) > 0) up++; - if (strcmp(&spool[sp->name], &upool[up->name]) == 0) { + if (strcmp(&spool[sp->name], &upool[up->name]) == 0 && + versioncmp(&spool[sp->version], &upool[up->version]) < 0) { tp = array_add(&trans->packages, sizeof *tp); memset(tp, 0, sizeof *tp); tp->old_package = sp;