Index: trunk/BNC/bncnetqueryrtp.cpp
===================================================================
--- trunk/BNC/bncnetqueryrtp.cpp	(revision 1413)
+++ trunk/BNC/bncnetqueryrtp.cpp	(revision 1414)
@@ -29,4 +29,5 @@
   _socket    = 0;
   _udpSocket = 0;
+  _eventLoop = new QEventLoop(this);
 }
 
@@ -34,4 +35,5 @@
 ////////////////////////////////////////////////////////////////////////////
 bncNetQueryRtp::~bncNetQueryRtp() {
+  delete _eventLoop;
   delete _socket;
   delete _udpSocket;
@@ -41,9 +43,5 @@
 ////////////////////////////////////////////////////////////////////////////
 void bncNetQueryRtp::stop() {
-#ifndef sparc
-  if (_socket) {
-    _socket->abort();
-  }
-#endif
+  _eventLoop->quit();
   _status = finished;
 }
@@ -57,4 +55,17 @@
 ////////////////////////////////////////////////////////////////////////////
 void bncNetQueryRtp::waitForReadyRead(QByteArray& outData) {
+
+  // Wait Loop
+  // ---------
+  if (!_udpSocket->hasPendingDatagrams()) {
+    _eventLoop->exec();
+  }
+
+  // Append Data
+  // -----------
+  QByteArray datagram;
+  datagram.resize(_udpSocket->pendingDatagramSize());
+  _udpSocket->readDatagram(datagram.data(), datagram.size());
+  outData.append(datagram);
 }
 
@@ -104,4 +115,5 @@
     _udpSocket = new QUdpSocket();
     _udpSocket->bind(clientPort.toInt());
+    connect(_udpSocket, SIGNAL(readyRead()), _eventLoop, SLOT(quit()));
     
     QByteArray reqStr;
