I just checked in the beginnings of the mime database code. It currently expects to find the database at ~/config/settings/obos_mime instead of ~/config/settings/beos_mime (so as not to trash your database if I do something stupid ;-), so you'll either need to make a copy yourself or change the string constant in MimeDatabase.cpp to point somewhere else if you feel like playing around with BMimeType (though the obos BMimeType tests make a copy if they need to). I have one question currently. I'm a bit perplexed with BRoster::_Start/_StopWatching(). I can't figure out what would be gained by implementing BMimeType::Start/StopWatching() via said BRoster calls vs. just using _send_to_roster(,,true) to talk to the MimeManager directly (the latter being the way I've implemented it currently). As best I can tell, that's what BRoster::_Start/_StopWatching would have to do eventually anyway, but at the cost of filtering the necessary information through a somewhat contrived interface designed to be used by two notably different monitor services (namely BRoster::Start/StopWatching() and BMimeType::Start/StopWatching), and with no other apparent gain. Or am I missing something? -Tyler