diff --git a/src/ui.c b/src/ui.c
index db8f04c..6d408b0 100644
--- a/src/ui.c
+++ b/src/ui.c
@@ -2020,7 +2020,7 @@
 
     if (value == NULL || *length == 0)
     {
-	clip_free_selection(cbd);	/* ???  [what's the query?] */
+	clip_free_selection(cbd);	/* nothing received, clear register */
 	*(int *)success = FALSE;
 	return;
     }
@@ -2076,7 +2076,7 @@
 	text_prop.value = (unsigned char *)value;
 	text_prop.encoding = *type;
 	text_prop.format = *format;
-	text_prop.nitems = STRLEN(value);
+	text_prop.nitems = len;
 	status = XmbTextPropertyToTextList(X_DISPLAY, &text_prop,
 							 &text_list, &n_text);
 	if (status != Success || n_text < 1)
@@ -2131,7 +2131,7 @@
 	    case 3:  type = text_atom;		break;
 	    default: type = XA_STRING;
 	}
-	success = FALSE;
+	success = MAYBE;
 	XtGetSelectionValue(myShell, cbd->sel_atom, type,
 	    clip_x11_request_selection_cb, (XtPointer)&success, CurrentTime);
 
@@ -2145,25 +2145,27 @@
 	 * paste!  Don't worry, we will catch up with any other events later.
 	 */
 	start_time = time(NULL);
-	for (;;)
+	while (success == MAYBE)
 	{
-	    if (XCheckTypedEvent(dpy, SelectionNotify, &event))
+	    if (XCheckTypedEvent(dpy, SelectionNotify, &event)
+		    || XCheckTypedEvent(dpy, SelectionRequest, &event)
+		    || XCheckTypedEvent(dpy, PropertyNotify, &event))
 	    {
-		/* this is where clip_x11_request_selection_cb() is actually
-		 * called */
+		/* This is where clip_x11_request_selection_cb() should be
+		 * called.  It may actually happen a bit later, so we loop
+		 * until "success" changes.
+		 * We may get a SelectionRequest here and if we don't handle
+		 * it we hang.  KDE klipper does this, for example.
+		 * We need to handle a PropertyNotify for large selections. */
 		XtDispatchEvent(&event);
-		break;
+		continue;
 	    }
-	    if (XCheckTypedEvent(dpy, SelectionRequest, &event))
-		/* We may get a SelectionRequest here and if we don't handle
-		 * it we hang.  KDE klipper does this, for example. */
-		XtDispatchEvent(&event);
 
 	    /* Time out after 2 to 3 seconds to avoid that we hang when the
 	     * other process doesn't respond.  Note that the SelectionNotify
 	     * event may still come later when the selection owner comes back
-	     * to life and the text gets inserted unexpectedly (by xterm).
-	     * Don't know how to avoid that :-(. */
+	     * to life and the text gets inserted unexpectedly.  Don't know
+	     * why that happens or how to avoid that :-(. */
 	    if (time(NULL) > start_time + 2)
 	    {
 		timed_out = TRUE;
@@ -2177,7 +2179,7 @@
 	    ui_delay(1L, TRUE);
 	}
 
-	if (success)
+	if (success == TRUE)
 	    return;
 
 	/* don't do a retry with another type after timing out, otherwise we
diff --git a/src/version.c b/src/version.c
index d4f67c9..c3803a1 100644
--- a/src/version.c
+++ b/src/version.c
@@ -677,6 +677,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    17,
+/**/
     16,
 /**/
     15,
