diff --git a/src/lib/platform/XWindowsClipboard.cpp b/src/lib/platform/XWindowsClipboard.cpp index d9c37685..95aa4aa5 100644 --- a/src/lib/platform/XWindowsClipboard.cpp +++ b/src/lib/platform/XWindowsClipboard.cpp @@ -937,8 +937,14 @@ CXWindowsClipboard::pushReplies() for (CReplyMap::iterator index = m_replies.begin(); index != m_replies.end(); ) { assert(!index->second.empty()); - if (!index->second.front()->m_replied) { - pushReplies(index, index->second, index->second.begin()); + CReplyList::iterator listit = index->second.begin(); + while (listit != index->second.end()) { + if (!(*listit)->m_replied) + break; + ++listit; + } + if (listit != index->second.end() && !(*listit)->m_replied) { + pushReplies(index, index->second, listit); } else { ++index;