Forked from ddskk.