In POSIX sh and in ksh, it's the convention that lowercase variable names are reserved for scripts, and uppercase names may be used by the shell or system. So most lowercase zsh parameters are not initialised when zsh is invoked as sh or ksh (through a symlink or the --emulate option). However, there are two left that are initialised in sh/ksh mode: 'histchars' and 'signals'. So this can conflict with POSIX scripts. Also, if zsh is invoked as sh or ksh, 'histchars' is available whereas the 'HISTCHARS' equivalent is not. It seems quite obvious that this should be the other way around. The attached patch makes zsh, when invoked as sh or ksh, not initialise 'signals', and initialise 'HISTCHARS' instead of 'histchars'. It also updates the documentation. -- modernish -- harness the shell https://github.com/modernish/modernish