I think I've tracked down the root cause of this problem. It's actually papered over (coincidentally) in 0.4.10 due to another change, but thanks to the magic of "hg bisect" I was able to track down the change that "fixed" it and use that knowledge to trace the bug back to its origin.
What was happening was that some pieces of code in aptcache.cc which modify package states (in particular: cleanup_after_change(), sweep(), and mark_all_upgradable(), although the latter wasn't involved in this bug) didn't invoke the callbacks that announce that a package's state has been changed. As a result, the resolver's data sturctures were not reset from the current cache state. That meant that it ended up with an outdated list of broken packages. Adding pre_package_state_changed() calls in each place that states are actually modified fixes the problem, although I may just add blanket calls for each of the routines (the only harm is that the resolver might be reset unnecessarily, and I think that's less of a problem than this sort of weirdness). Daniel -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

