diff -ur mono-5.9.0.398/mcs/class/System.Windows.Forms/System.Windows.Forms/XplatUIX11.cs mono-patched-5.9.0.398/mcs/class/System.Windows.Forms/System.Windows.Forms/XplatUIX11.cs --- mono-5.9.0.398/mcs/class/System.Windows.Forms/System.Windows.Forms/XplatUIX11.cs 2017-11-17 18:12:57.000000000 +0300 +++ mono-patched-5.9.0.398/mcs/class/System.Windows.Forms/System.Windows.Forms/XplatUIX11.cs 2017-12-06 06:24:45.067519852 +0300 @@ -2810,14 +2810,21 @@ internal override object ClipboardRetrieve(IntPtr handle, int type, XplatUI.ClipboardToObject converter) { - XConvertSelection(DisplayHandle, handle, (IntPtr)type, (IntPtr)type, FosterParent, IntPtr.Zero); + try + { + XConvertSelection(DisplayHandle, handle, (IntPtr)type, (IntPtr)type, FosterParent, IntPtr.Zero); - Clipboard.Retrieving = true; - while (Clipboard.Retrieving) { - UpdateMessageQueue(null, false); - } + Clipboard.Retrieving = true; + while (Clipboard.Retrieving) { + UpdateMessageQueue(null, false); + } - return Clipboard.Item; + return Clipboard.Item; + } + catch (Exception ex) + { + return null; + } } internal override void ClipboardStore (IntPtr handle, object obj, int type, XplatUI.ObjectToClipboard converter, bool copy)