diff --git a/vncviewer/Viewport.cxx b/vncviewer/Viewport.cxx
index 3e82990..acbf36c 100644
--- a/vncviewer/Viewport.cxx
+++ b/vncviewer/Viewport.cxx
@@ -66,6 +66,11 @@
   set_simple_keyboard();
 #endif
 
+// FLTK STR #2636 gives us the ability to monitor clipboard changes
+#ifdef HAVE_FLTK_CLIPBOARD
+  Fl::add_clipboard_notify(handleClipboardChange, this);
+#endif
+
   frameBuffer = new ManagedPixelBuffer(getPreferredPF(), w, h);
   assert(frameBuffer);
 
@@ -84,6 +89,10 @@
   Fl::remove_timeout(handleColourMap, this);
   Fl::remove_timeout(handlePointerTimeout, this);
 
+#ifdef HAVE_FLTK_CLIPBOARD
+  Fl::remove_clipboard_notify(handleClipboardChange);
+#endif
+
   delete frameBuffer;
 
   if (pixelTrans)
@@ -172,10 +181,22 @@
 
 int Viewport::handle(int event)
 {
+  char buffer[1024];
+  int ret;
   int buttonMask, wheelMask;
   DownMap::const_iterator iter;
 
   switch (event) {
+  case FL_PASTE:
+    // This is documented as to ASCII, but actually does to 8859-1
+    ret = fl_utf8toa(Fl::event_text(), Fl::event_length(), buffer, sizeof(buffer));
+    if (ret >= sizeof(buffer)) {
+      vlog.error(_("Clipboard buffer overflow!"));
+      return 1;
+    }
+    vlog.debug("Sending clipboard data: '%s'", buffer);
+    cc->writer()->clientCutText(buffer, ret);
+    return 1;
   case FL_ENTER:
     // Yes, we would like some pointer events please!
     return 1;
@@ -260,6 +281,19 @@
 }
 
 
+void Viewport::handleClipboardChange(int source, void *data)
+{
+  Viewport *self = (Viewport *)data;
+
+  assert(self);
+
+  if (!sendPrimary && (source == 0))
+    return;
+
+  Fl::paste(*self, source);
+}
+
+
 void Viewport::handlePointerEvent(const rfb::Point& pos, int buttonMask)
 {
   if (!viewOnly) {
