Thanks for replying. 
However, I cannot change to *shell* buffer when ispell is running.  It seems that ispell operates under special mode where the keys are redefined and the command C-x b to switch to other buffers doesn't work. 

On Sat, Feb 11, 2012 at 3:40 AM, Peter Dyballa <Peter_Dyballa@web.de> wrote:

Am 11.2.2012 um 02:05 schrieb Shiyuan:

> 2. What is the path of the private dictionary of ispell used by emacs?

Presumingly ~/.ispell_<language>. This name is also mentioned when ispell has finished and learned at least one new word.


WRT your first problem: when ispell has started to check the buffer and stopped at a misspelled word, change to *shell* buffer and try to find out (with pstree, ps) what are the arguments and what is the environment in which ispell runs. (With lsof you could also check which files it has opened.) Record these findings, save them in a file. Now try it also when you invoke ispell the other way. After having saved the new findings, perform a comparison. Some difference should exist...

--
Greetings

 Pete

There is no national science just as there is no national multiplication table; what is national is no longer science.
                               – Anton Checov