Merged r2116, r2117 and r2187 from trunk.
Authored by: jplang 2008-12-31
Parent: [r2216]
Child: [r2218]