The shell-expand-line command (bound to Escape-Ctrl-E) incorrectly removes quotation marks from the command line, often resulting in a command that differs from what the user intended to type.
I've seem this problem with all recent versions of bash, particularly 4.3.11 (preinstalled on Linux Mint 17.2) and 4.4-beta (built from source on the same system). Here's a demonstration: $ /bin/bash --norc bash-4.3$ uname -a Linux bomb20 3.16.0-38-generic #52~14.04.1-Ubuntu SMP Fri May 8 09:43:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux bash-4.3$ echo $BASH_VERSION 4.3.11(1)-release bash-4.3$ bind -p | grep shell-expand-line "\e\C-e": shell-expand-line bash-4.3$ echol() { for word in "$@" ; do echo "$word" ; done ; } bash-4.3$ echo foo bar foo bar bash-4.3$ echol 'string with spaces' !* *# Here I typed just the command you see; it worked.* echol 'string with spaces' foo bar string with spaces foo bar bash-4.3$ echo foo bar foo bar bash-4.3$ echol string with spaces foo bar *# Here I typed the same command, then Escape-Ctrl-E* string with spaces foo bar bash-4.3$ I often type Escape-Ctrl-E to expand a history substitution in place before typing Enter, but it has the side effect of stripping quotes from what I've already typed. -- Keith Thompson <keith.s.thomp...@gmail.com>