Ok, I think the attached patch has just about everything:
Thanks,
Ryan