Back-ported fix from 3.2 (mainly from Bo Yang <boyang@novell.com>)