forked from: STM.

