port over the rest of Eric's changes from trunk
Authored by: jswhit 2007-11-18
Parent: [r4370]
Child: [r4372]