Merged changes from original repository by zst123