Index: /branches/BNC_2.12/src/bnccore.h
===================================================================
--- /branches/BNC_2.12/src/bnccore.h	(revision 7976)
+++ /branches/BNC_2.12/src/bnccore.h	(revision 7977)
@@ -71,4 +71,5 @@
   void             startPPP();
   void             stopPPP();
+  int              sigintReceived;  
 
   QMap<int, bncTableItem*> _uploadTableItems;
Index: /branches/BNC_2.12/src/bncgetthread.cpp
===================================================================
--- /branches/BNC_2.12/src/bncgetthread.cpp	(revision 7976)
+++ /branches/BNC_2.12/src/bncgetthread.cpp	(revision 7977)
@@ -468,6 +468,6 @@
         QCoreApplication::processEvents();
 
-        if (data.isEmpty()) {
-          cout << "no more data" << endl;
+        if (data.isEmpty() || BNC_CORE->sigintReceived) {
+          cout << "no more data or Ctrl-C received" << endl;
           BNC_CORE->stopCombination();
           BNC_CORE->stopPPP();
@@ -641,6 +641,7 @@
 #endif
     }
-
-    delete _query;
+    if (_query) {
+      delete _query;
+    }
     if      (_ntripVersion == "U") {
       _query = new bncNetQueryUdp();
Index: /branches/BNC_2.12/src/bncmain.cpp
===================================================================
--- /branches/BNC_2.12/src/bncmain.cpp	(revision 7976)
+++ /branches/BNC_2.12/src/bncmain.cpp	(revision 7977)
@@ -60,4 +60,5 @@
 void catch_signal(int) {
   cout << "Program Interrupted by Ctrl-C" << endl;
+  BNC_CORE->sigintReceived = 1;
   qApp->quit();
 }
@@ -483,4 +484,5 @@
     // -----------------------------
     else {
+      BNC_CORE->sigintReceived = 0;
       BNC_CORE->setMode(t_bncCore::batchPostProcessing);
       BNC_CORE->startPPP();
