Hi, I think I finally have enough info to ask a decent question. This is quasi a bug report but I'm starting off here. I've mentioned this before. I have a Mac (10.8.5) running JollysFastVNC (1.48) viewing a RealVNC server (5.0.1) on AIX (6.1 TL08 SP03) running emacs (24.3). I believe it started when emacs 24 was being developed but I'm not sure. I know the issue existed in 24.2 and did not exist in emacs 23 that I was using but I don't recall which subversion that was. I've turned on TRACE_SELECTION in xselect.c and I've also duplicated those macros in keyboard.c and process.c. When I start emacs -q I get this output: 10748140: get_input_pending returning 0 10748140: last check: read_kdb=-1 NILP(wait_for_cell):1 10748140: get_input_pending returning 0 10748140: no_avail:0 10748140: pselect 2 followed by a half second pause. This is the normal polling of the input (I guess its normal). I go to a Mac window, select some text, then hit command-C to copy it into the cut buffer, then select the VNC window (where emacs is already the active window) and hit control-Y to paste. I get: 10748140: get_input_pending returning 1 10748140: get_input_pending returning 1 10748140: Get selection UTF8_STRING, type _EMACS_TMP_ 10748140: Start waiting 5 secs for SelectionNotify 10748140: last check: read_kdb=0 NILP(wait_for_cell):0 10748140: Received SelectionNotify 10748140: get_input_pending returning 0 10748140: no_avail:0 10748140: pselect 2 followed by a 5 second pause, then I get 10748140: Got event = 1 10748140: Reading selection data 10748140: Read 7 bytes from property _EMACS_TMP_ 10748140: Delete property _EMACS_TMP_ and then I see the text show up in the emacs window. I *think* what is "wrong" here is in this case, get_input_pending is actually pulling the text out and via the SelectionNotify handler placing the text into reading_selection_reply but then returns zero because, at that point in time, there is no input to be read. Thus this if test, is not true: if ((read_kbd || !NILP (wait_for_cell)) && detect_input_pending ()) I'm thinking that after detect_input_pending is called in wait_reading_process_output, another two lines like this: if (! NILP (wait_for_cell) && ! NILP (XCAR (wait_for_cell))) break; should be added before the if (!no_avail) line (around line 4612 in the copy I am looking at. I made this change in my copy and so far, it seems to work. Perry Smith