diff --git a/sflphone-client-kde/data/sflphone-client-kdeui.rc b/sflphone-client-kde/data/sflphone-client-kdeui.rc
index 291817af5d2f8d8e1bae50704b8de5c326653f0e..bbba5e540290ace7ada71a9813b36262abd06c19 100644
--- a/sflphone-client-kde/data/sflphone-client-kdeui.rc
+++ b/sflphone-client-kde/data/sflphone-client-kdeui.rc
@@ -20,6 +20,8 @@
 			<Separator />
 			<Action name="action_mailBox" />
 			<Separator />
+			<Action name="action_close" />
+			<Separator />
 			<Action name="action_quit" />
 		</Menu>
 		<Menu name="Settings" >
diff --git a/sflphone-client-kde/src/SFLPhone.cpp b/sflphone-client-kde/src/SFLPhone.cpp
index 9e6955837a3abb364887b2e2ae020af96a2c20ae..7a5be519f276ed4533b3160b67b7826177218891 100644
--- a/sflphone-client-kde/src/SFLPhone.cpp
+++ b/sflphone-client-kde/src/SFLPhone.cpp
@@ -64,11 +64,12 @@ SFLPhone::SFLPhone(QWidget *parent)
 		{
 			QDir dir;
 			dir.cdUp();
+			dir.cd("data");
 			rcFilePath = dir.filePath("sflphone-client-kdeui.rc");
 		}
 		qDebug() << "rcFilePath = " << rcFilePath ;
 		createGUI(rcFilePath);
-             
+
       QMetaObject::connectSlotsByName(this);
 
 } 
@@ -89,7 +90,9 @@ void SFLPhone::setupActions()
 	actionCollection()->addAction("action_history", view->action_history);
 	actionCollection()->addAction("action_addressBook", view->action_addressBook);
 	actionCollection()->addAction("action_mailBox", view->action_mailBox);
-	KAction * action_quit = KStandardAction::quit(qApp, SLOT(closeAllWindows()), 0);
+	KAction * action_close = KStandardAction::close(this, SLOT(close()), 0);
+	actionCollection()->addAction("action_close", action_close);
+	KAction * action_quit = KStandardAction::quit(this, SLOT(quitButton()), 0);
 	actionCollection()->addAction("action_quit", action_quit);
 	
 	
@@ -131,21 +134,27 @@ void SFLPhone::setupActions()
 
 }
 
-
 bool SFLPhone::queryClose()
+{
+	qDebug() << "queryClose";
+	hide();
+	return false;
+}
+
+void SFLPhone::quitButton()
 {
 	InstanceInterface & instance = InstanceInterfaceSingleton::getInstance();
-	qDebug() << "queryClose : " << view->listWidget_callList->count() << " calls open.";
+	qDebug() << "quitButton : " << view->listWidget_callList->count() << " calls open.";
 	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;
+	qApp->quit();
 }
 
+
 void SFLPhone::putForeground()
 {
 	activateWindow();
diff --git a/sflphone-client-kde/src/SFLPhone.h b/sflphone-client-kde/src/SFLPhone.h
index 7b8edd3c21d0e3aa5cc9400c07e4454f4d682f24..94213bdeeabac1434b9b7b4f3a945dcda5ab9f67 100644
--- a/sflphone-client-kde/src/SFLPhone.h
+++ b/sflphone-client-kde/src/SFLPhone.h
@@ -56,6 +56,7 @@ private:
 protected:
 	virtual bool queryClose();
 	virtual void changeEvent(QEvent * event);
+	
 
 public:
 	SFLPhone(QWidget *parent = 0);
@@ -70,6 +71,7 @@ private slots:
 	void on_trayIcon_activated(QSystemTrayIcon::ActivationReason reason);
 	void on_trayIcon_messageClicked();
 
+	void quitButton();
 
 };