re-fix of #1205, fix #2542