So I have a bunch of local changes that I should be committing soon. Just wanted to give you all a "heads up". 1) "lazy caching" - default infolevel for pkgcache set to INFRQ_NONE, added infolevel to the get_pkgcache function, to read only the files needed. This improved -Ss speed and -Su speed by *alot* 2) switch to libfetch - mostly internal changes to server.c download_files_forreal 3) pm_dlcb format change (this is the big one). Because the callback was now in my hands (thanks libfetch) and not part of a library, I had free reign on the format. I really don't like the 10-or-so library-level variables for the callback, so I removed those. The new callback signature is: (const char *filename, int xfered, int total) Every single thing needed by the callback can be calculated from the current and total bytes. The callback is also called before download starts with an xfered == 0. This is useful to initialize the start time and things like that. This is still up for interpretation - if someone sees a problem that I do not, let me know. 4) I implemented the "ILoveCandy" progress on the secondary progress bars. I also slightly changed the format from "C*****" to "C o o o o", just for kicks. If any of these changes are problematic, let me know.... it's alot to check in at once, but all this was due to libfetch integration. Thanks, Aaron