diff -r e64c97268f1a st.c --- a/st.c Thu Jun 09 18:25:56 2011 +0200 +++ b/st.c Thu Aug 04 19:44:02 2011 +0300 @@ -523,8 +523,7 @@ xev.selection = xsre->selection; xev.target = xsre->target; xev.time = xsre->time; - /* reject */ - xev.property = None; + xev.property = xsre->property; xa_targets = XInternAtom(xw.dpy, "TARGETS", 0); if(xsre->target == xa_targets) { @@ -533,13 +532,12 @@ XChangeProperty(xsre->display, xsre->requestor, xsre->property, XA_ATOM, 32, PropModeReplace, (unsigned char *) &string, 1); - xev.property = xsre->property; - } else if(xsre->target == sel.xtarget) { + } else if(xsre->target == sel.xtarget) XChangeProperty(xsre->display, xsre->requestor, xsre->property, xsre->target, 8, PropModeReplace, (unsigned char *) sel.clip, strlen(sel.clip)); - xev.property = xsre->property; - } + else + xev.property = None; /* reject */ /* all done, send a notification to the listener */ if(!XSendEvent(xsre->display, xsre->requestor, True, 0, (XEvent *) &xev))