Index: /trunk/GnssCenter/map_stations/map_stations.cpp
===================================================================
--- /trunk/GnssCenter/map_stations/map_stations.cpp	(revision 5430)
+++ /trunk/GnssCenter/map_stations/map_stations.cpp	(revision 5431)
@@ -68,7 +68,5 @@
 /////////////////////////////////////////////////////////////////////////////
 t_map_stations::~t_map_stations() {
-  if (_thriftClient) { 
-    _thriftClient->stopAndDestroy();
-  }
+  slotStopThrift();
   if (_results) {
     while (!_results->empty()) {
@@ -85,4 +83,5 @@
   if (!_thriftClient) {
     _thriftClient = new t_thriftClient(this);
+    connect(_thriftClient, SIGNAL(finished()), this, SLOT(slotThriftFinished()));
     _thriftClient->start();
     slotPlotResults();
@@ -98,8 +97,17 @@
 /////////////////////////////////////////////////////////////////////////////
 void t_map_stations::slotStopThrift() {
-  if (_thriftClient && _thriftClient->isRunning()) {
-    _thriftClient->stopAndDestroy();
+  qDebug() << "slotStopThrift" << _thriftClient;
+  if (_thriftClient) {
+    _thriftClient->stop();
     _thriftClient = 0;
   }
+}
+
+// 
+/////////////////////////////////////////////////////////////////////////////
+void t_map_stations::slotThriftFinished() {
+  qDebug() << "slotThriftFinished" << _thriftClient;
+  sender()->deleteLater();
+  _thriftClient = 0;
 }
 
Index: /trunk/GnssCenter/map_stations/map_stations.h
===================================================================
--- /trunk/GnssCenter/map_stations/map_stations.h	(revision 5430)
+++ /trunk/GnssCenter/map_stations/map_stations.h	(revision 5431)
@@ -26,4 +26,5 @@
   void slotStartThrift();
   void slotStopThrift();
+  void slotThriftFinished();
   void slotPlotResults();
 
Index: /trunk/GnssCenter/map_stations/thriftclient.cpp
===================================================================
--- /trunk/GnssCenter/map_stations/thriftclient.cpp	(revision 5430)
+++ /trunk/GnssCenter/map_stations/thriftclient.cpp	(revision 5431)
@@ -62,6 +62,4 @@
     cerr << "Unknown exception" << endl;
   }
-  this->terminate();
-  this->deleteLater();
 }
 
Index: /trunk/GnssCenter/map_stations/thriftclient.h
===================================================================
--- /trunk/GnssCenter/map_stations/thriftclient.h	(revision 5430)
+++ /trunk/GnssCenter/map_stations/thriftclient.h	(revision 5431)
@@ -68,5 +68,5 @@
   ~t_thriftClient();
   virtual void run();
-  void stopAndDestroy() {
+  void stop() {
     QMutexLocker locker(&_mutex);
     _stop = true;
