diff --git a/sflphone_kde/SFLPhone.cpp b/sflphone_kde/SFLPhone.cpp
index b82ac7d854a98ee5de91bef401c9de52ad8583de..a919d38eabd541dd4cff77bbb2a11e5ac4f014fa 100644
--- a/sflphone_kde/SFLPhone.cpp
+++ b/sflphone_kde/SFLPhone.cpp
@@ -10,6 +10,7 @@
 #include <KActionCollection>
 
 #include "sflphone_const.h"
+#include "instance_interface_singleton.h"
 
 
 
@@ -100,13 +101,15 @@ void SFLPhone::setupActions()
 
 bool SFLPhone::queryClose()
 {
+	InstanceInterface & instance = InstanceInterfaceSingleton::getInstance();
 	qDebug() << "queryClose : " << view->listWidget_callList->count() << " calls open.";
-	if(view->listWidget_callList->count() > 0)
+	if(view->listWidget_callList->count() > 0 && instance.getRegistrationCount() <= 1)
 	{
 		qDebug() << "Attempting to quit when still having some calls open.";
 		view->getErrorWindow()->showMessage(tr2i18n("You still have some calls open. Please close all calls before quitting.", 0));
 		return false;
 	}
+	instance.Unregister(getpid());
 	return true;
 }
 
diff --git a/sflphone_kde/sflphone_kdeview.cpp b/sflphone_kde/sflphone_kdeview.cpp
index 4bcd8b7d9dfb971a6d3c4a7ebcacb2c682222a5d..a77c4eeea9dfdaffa100845589f9fd27504962fe 100644
--- a/sflphone_kde/sflphone_kdeview.cpp
+++ b/sflphone_kde/sflphone_kdeview.cpp
@@ -89,8 +89,8 @@ sflphone_kdeView::~sflphone_kdeView()
 	delete wizard;
 	delete callList;
 	delete errorWindow;
-	InstanceInterface & instance = InstanceInterfaceSingleton::getInstance();
-	instance.Unregister(getpid());
+// 	InstanceInterface & instance = InstanceInterfaceSingleton::getInstance();
+// 	instance.Unregister(getpid());
 }