Index: /trunk/BNC/bncgetthread.cpp
===================================================================
--- /trunk/BNC/bncgetthread.cpp	(revision 472)
+++ /trunk/BNC/bncgetthread.cpp	(revision 473)
@@ -256,4 +256,26 @@
   if (_socket->canReadLine()) {
     QString line = _socket->readLine();
+
+    // Skip messages from proxy server
+    // -------------------------------
+    if (line.indexOf("ICY 200 OK") == -1 && 
+        line.indexOf("200 OK")     != -1 ) {
+      bool proxyRespond = true;
+      while (true) {
+        if (_socket->canReadLine()) {
+          line = _socket->readLine();
+          if (!proxyRespond) {
+            break;
+          }
+          if (line.trimmed().isEmpty()) {
+            proxyRespond = false;
+          }
+        }
+        else {
+          _socket->waitForReadyRead(_timeOut);
+        }
+      }
+    }
+
     if (line.indexOf("Unauthorized") != -1) {
       QStringList table;
Index: /trunk/BNC/bnctabledlg.cpp
===================================================================
--- /trunk/BNC/bnctabledlg.cpp	(revision 472)
+++ /trunk/BNC/bnctabledlg.cpp	(revision 473)
@@ -157,8 +157,23 @@
   // Read Caster Response
   // --------------------
+  bool proxyRespond = false;
   bool first = true;
   while (true) {
     if (socket->canReadLine()) {
       QString line = socket->readLine();
+
+      // Skip messages from proxy server
+      // -------------------------------
+      if (line.indexOf("SOURCETABLE 200 OK") == -1 && 
+          line.indexOf("200 OK")             != -1 ) {
+        proxyRespond = true;
+      }
+      if (proxyRespond) {
+        if (line.trimmed().isEmpty()) {
+          proxyRespond = false;
+        }
+        continue;
+      }
+
       allLines.push_back(line);
       if (first) {
