diff -r 5dc02b23752f -r 3e2da88830cd src/plugins/gfxdrivers/vnc/qscreenvnc_qws.cpp --- a/src/plugins/gfxdrivers/vnc/qscreenvnc_qws.cpp Tue Jul 06 15:10:48 2010 +0300 +++ b/src/plugins/gfxdrivers/vnc/qscreenvnc_qws.cpp Wed Aug 18 10:37:55 2010 +0300 @@ -1053,7 +1053,7 @@ { QRfbClientCutText ev; - if (ev.read(client)) { + if (cutTextPending == 0 && ev.read(client)) { cutTextPending = ev.length; if (!cutTextPending) handleMsg = false; @@ -1481,7 +1481,7 @@ } if (count & 0x1) { const quint16 *src16 = reinterpret_cast(src); - dst32[count - 1] = qt_conv16ToRgb(src16[count - 1]); + *dst32 = qt_conv16ToRgb(src16[count - 1]); } return; #endif @@ -2038,7 +2038,7 @@ delete qvnc_cursor; qvnc_cursor = 0; #endif - if (!qvnc_screen->screen() && !qvnc_screen->d_ptr->noDisablePainting) + if (!qvnc_screen->screen() && !qvnc_screen->d_ptr->noDisablePainting && QWSServer::instance()) QWSServer::instance()->enablePainting(false); }