forked from: flash on 2013-4-12

