File name completion in a *Shell* on w32 using cmd.exe for the shell process currently does not work. The attached file contains code that can be used to fix this bug. It does not use the Emacs completion style but instead the completion style used by cmd.exe. Maybe it should do both? I proposed before to sync the directory of the shell process with default-directory. This code also adds such a sync.