Merged r3305, r3306, r3307, r3311 from trunk.
Authored by: jplang 2010-01-16
Parent: [r3316]
Child: [r3318]