Hi! Here a small fix to patchIII (apply it first plz). I noticed that you use depmiss here in an unusual way (why?) [Anyway, in the non-patched pacman the debug-log message found in this patch is "swapped"]. -------patchIII/A------ diff -Naur pacman-lib/lib/libalpm/deps.c pacman-lib.new/lib/libalpm/deps.c --- pacman-lib/lib/libalpm/deps.c 2007-04-21 22:45:25.000000000 +0200 +++ pacman-lib.new/lib/libalpm/deps.c 2007-04-22 13:26:20.000000000 +0200 @@ -409,8 +409,8 @@ if(!satisfied) { _alpm_log(PM_LOG_DEBUG, _("checkdeps: found %s as required by %s"), alpm_pkg_get_name(rempkg), alpm_pkg_get_name(p)); - miss = _alpm_depmiss_new(p->name, PM_DEP_TYPE_DEPEND, depend->mod, - depend->name, depend->version); + miss = _alpm_depmiss_new(alpm_pkg_get_name(rempkg), PM_DEP_TYPE_DEPEND, PM_DEP_MOD_ANY, + alpm_pkg_get_name(p), NULL); if(!_alpm_depmiss_isin(miss, baddeps)) { baddeps = alpm_list_add(baddeps, miss); } else { ------------------------ Some other notes for dependency error messages (these can be found in pacman/add.c remove.c ...): See upgrade052.py: User says: pacman -U pkg2 pacman says: pkg1 requires imaginary Hm. This is not very informative to the user. "After the transaction the following dependencies would become broken: ... " (just smaller and not Hunglish ;-) would be better imho. Bye, ngaba PS: sync895.py: As I see, the glitch is in sync.c; as I debugged it doesn't correctly "copies" the package to the removal list (probably forgets about provides for example). The modified deps.c works correctly if I want to remove the replaced package by hand. But this fix is up to you ;-P