the deadlock is annoying from the gtk X error handler I guess. I got an xtrace log thus: 004:<:0081: 8: Request(23): GetSelectionOwner atom=0x168("CLIPBOARD") 002:>:1387: Event PropertyNotify(28) window=0x0460044e atom=0x27("WM_NAME") time=0x0612ed8d state=NewValue(0x00) 004:>:0081: Event PropertyNotify(28) window=0x0460044e atom=0x25("WM_ICON_NAME") time=0x0612ed8d state=NewValue(0x00) 002:>:1387: Event PropertyNotify(28) window=0x0460044e atom=0x128("_NET_WM_ICON_NAME") time=0x0612ed8d state=NewValue(0x00) 002:>:1387: Event PropertyNotify(28) window=0x0460044e atom=0x25("WM_ICON_NAME") time=0x0612ed8d state=NewValue(0x00) 004:>:0081:32: Reply to GetSelectionOwner: owner=0x04004954 This previous synchronous call completed without errors, so something below up to the error caused the grief: 002:>:1387: Event PropertyNotify(28) window=0x04600003 atom=0x297("SAL_GETTIMEEVENT") time=0x0612ed8d state=NewValue(0x00) 002:<:1388: 28: Request(18): ChangeProperty mode=Replace(0x00) window=0x0460044f property=0x13a("_NET_WM_USER_TIME") type=0x6("CARDINAL") data=0x00000000; 002:<:1389: 28: Request(12): ConfigureWindow window=0x0460044e values={x=772 y=786 width=371 height=70} 002:<:138a: 96: Request(18): ChangeProperty mode=Replace(0x00) window=0x0460044e property=0x28("WM_NORMAL_HINTS") type=0x29("WM_SIZE_HINTS") data=0x00000234,0x00000000,0x00000000,0x00000000,0x00000000,0x00000173,0x00000046,0x00000173,0x00000046,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x0000000a; 002:<:138b: 20: Request(12): ConfigureWindow window=0x0460044e values={x=772 y=786} 002:<:138c: 28: Request(18): ChangeProperty mode=Replace(0x00) window=0x0460044e property=0x138("_NET_WM_WINDOW_TYPE") type=0x4("ATOM") data=0x18d("_NET_WM_WINDOW_TYPE_TOOLBAR"); 002:<:138d: 16: Request(12): ConfigureWindow window=0x0460044e values={stack-mode=Above(0x00)} 002:<:138e: 60: Request(18): ChangeProperty mode=Replace(0x00) window=0x0460044e property=0x23("WM_HINTS") type=0x23("WM_HINTS") data=0x00000067,0x00000000,0x00000001,0x04600105,0x00000000,0x00000000,0x00000000,0x04600106,0x04600001; 002:<:138f: 12: Request(19): DeleteProperty window=0x0460044e property=0x12c("_NET_WM_STATE") 004:>:0081: Event PropertyNotify(28) window=0x0460044e atom=0x28("WM_NORMAL_HINTS") time=0x0612ed8e state=NewValue(0x00) 002:<:1390: 12: Request(19): DeleteProperty window=0x0460044e property=0x126("_NET_WM_DESKTOP") 002:>:1390: Event PropertyNotify(28) window=0x0460044e atom=0x28("WM_NORMAL_HINTS") time=0x0612ed8e state=NewValue(0x00) 004:>:0081: Event PropertyNotify(28) window=0x0460044e atom=0x138("_NET_WM_WINDOW_TYPE") time=0x0612ed8e state=NewValue(0x00) 002:>:1390: Event PropertyNotify(28) window=0x0460044e atom=0x138("_NET_WM_WINDOW_TYPE") time=0x0612ed8e state=NewValue(0x00) 002:<:1391: 8: Request(8): MapWindow window=0x0460044e 002:<:1392: 28: Request(18): ChangeProperty mode=Replace(0x00) window=0x04600003 property=0x297("SAL_GETTIMEEVENT") type=0x297("SAL_GETTIMEEVENT") data=0x00; 002:>:1392: Event ConfigureNotify(22) event=0x0460044e window=0x0460044e above-sibling=0x0460044b x=772 y=786 width=371 height=70 border-width=0 override-redirect=false(0x00) 004:>:0081: Event PropertyNotify(28) window=0x0460044e atom=0x23("WM_HINTS") time=0x0612ed8e state=NewValue(0x00) 002:<:1393: 44: Request(25): SendEvent propagate=false(0x00) destination=0x00000158 event-mask=SubstructureNotify,SubstructureRedirect ClientMessage(33) format=0x20 window=0x0460044e type=0x121("_NET_ACTIVE_WINDOW") data=0x01,0x00,0x00,0x00,0x8d,0xed,0x12,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00; 002:>:1393: Event PropertyNotify(28) window=0x0460044e atom=0x23("WM_HINTS") time=0x0612ed8e state=NewValue(0x00) 002:<:1394: 12: Request(42): SetInputFocus revert-to=Parent(0x02) focus=0x0460044e time=CurrentTime(0x00000000) 002:<:1395: 8: Request(38): QueryPointer window=0x00000158 002:>:1395: Event PropertyNotify(28) window=0x04600003 atom=0x297("SAL_GETTIMEEVENT") time=0x0612ed8e state=NewValue(0x00) 002:>:1394:Error 8=Match: major=42, minor=0, bad=73401422