diff --git a/.gitignore b/.gitignore
index 2cbf4e3093e8fd77c2e52b7905f1bbc26753f9e6..ccc5bb9604ef9601947060d0f4b11a847e7aada2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -116,7 +116,7 @@ sflphone-client-gnome/man/Makefile
 /sflphone-client-gnome/src/dbus/marshaller.h
 
 # Ignore sflphone_kde stuff
-/sflphone_kde/build
+/sflphone-client-kde/build
 
 # Ignore sub-modules stuff
 ## libiax2
diff --git a/sflphone-client-kde/cmake/TargetDistclean.cmake b/sflphone-client-kde/cmake/TargetDistclean.cmake
index 8fdf46feeeec3fdd99189acb1086128a6afe28c2..4890b4063e30957f27e22ebcbadff4c040323bba 100644
--- a/sflphone-client-kde/cmake/TargetDistclean.cmake
+++ b/sflphone-client-kde/cmake/TargetDistclean.cmake
@@ -59,6 +59,7 @@ IF (UNIX)
    src/*_automoc.cpp
    src/sflphone-client-kde
    src/sflphone-client-kde.shell
+   src/*.moc
   )
   
   SET(DISTCLEANED_REC
diff --git a/sflphone-client-kde/src/CMakeLists.txt b/sflphone-client-kde/src/CMakeLists.txt
index 5762b2bb0708d223b02ad9978ea62cca129e25da..21d47e600bfddae56b3a5ae4e5d920c4772bbdc4 100644
--- a/sflphone-client-kde/src/CMakeLists.txt
+++ b/sflphone-client-kde/src/CMakeLists.txt
@@ -35,7 +35,7 @@ QT4_ADD_RESOURCES(QtApp_RCC_SRCS ${QtApp_RCCS})
 
 
 # Build dbus interfaces
-SET ( dbus_xml_introspecs_path ${CMAKE_CURRENT_SOURCE_DIR}/../../sflphone-common/src/dbus/)
+SET ( dbus_xml_introspecs_path ${CMAKE_CURRENT_SOURCE_DIR}/dbus/)
 
 # configuration manager interface
 SET ( configurationmanager_xml  ${dbus_xml_introspecs_path}/configurationmanager-introspec.xml )
diff --git a/sflphone-client-kde/src/dbus/CMakeLists.txt b/sflphone-client-kde/src/dbus/CMakeLists.txt
deleted file mode 100644
index 928a6f963043f8275a557c19ad243e68165f5c5d..0000000000000000000000000000000000000000
--- a/sflphone-client-kde/src/dbus/CMakeLists.txt
+++ /dev/null
@@ -1,48 +0,0 @@
-
-MESSAGE("Yeeeeaaaaah : rentre dans dbus!!!!!")
-# Build dbus interfaces
-
-# configuration manager interface
-
-SET ( configurationmanager_xml  ${CMAKE_CURRENT_SOURCE_DIR}/../sflphone-common/src/dbus/configurationmanager-introspec.xml )
-
-SET_SOURCE_FILES_PROPERTIES(
-   ${configurationmanager_xml}
-   PROPERTIES 
-   CLASSNAME ConfigurationManagerInterface
-   INCLUDE "metatypes.h") 
-
-QT4_ADD_DBUS_INTERFACE(
-   sflphone_client_kde_SRCS 
-   ${configurationmanager_xml}
-   configurationmanager_dbus_interface)
-
-# call manager interface
-
-SET ( callmanager_xml  ${CMAKE_CURRENT_SOURCE_DIR}/../sflphone-common/src/dbus/callmanager-introspec.xml )
-
-SET_SOURCE_FILES_PROPERTIES(
-   ${callmanager_xml}
-   PROPERTIES 
-   CLASSNAME CallManagerInterface
-   INCLUDE "metatypes.h") 
-
-QT4_ADD_DBUS_INTERFACE(
-   sflphone_client_kde_SRCS 
-   ${callmanager_xml}
-   callmanager_dbus_interface)
-
-# instance interface
-
-SET ( instance_xml  ${CMAKE_CURRENT_SOURCE_DIR}/../sflphone-common/src/dbus/instance-introspec.xml )
-
-SET_SOURCE_FILES_PROPERTIES(
-   ${instance_xml}
-   PROPERTIES 
-   CLASSNAME InstanceInterface
-   INCLUDE "metatypes.h") 
-   
-QT4_ADD_DBUS_INTERFACE(
-   sflphone_client_kde_SRCS 
-   ${instance_xml}
-   instance_dbus_interface)
diff --git a/sflphone-client-kde/src/dbus/callmanager-introspec.xml b/sflphone-client-kde/src/dbus/callmanager-introspec.xml
new file mode 100644
index 0000000000000000000000000000000000000000..dbc84d3542c77ceba6beb6f07f3904aa2e4d8ce8
--- /dev/null
+++ b/sflphone-client-kde/src/dbus/callmanager-introspec.xml
@@ -0,0 +1,120 @@
+<?xml version="1.0" ?>
+<node name="/org/sflphone/SFLphone">
+  <interface name="org.sflphone.SFLphone.CallManager">
+  
+    <method name="placeCall">
+      <arg type="s" name="accountID" direction="in"/>
+      <arg type="s" name="callID" direction="in"/>
+      <arg type="s" name="to" direction="in"/>
+    </method>
+    
+    <method name="refuse">
+      <arg type="s" name="callID" direction="in"/>
+    </method>
+    
+    <method name="accept">
+      <arg type="s" name="callID" direction="in"/>
+    </method>
+    
+    <method name="hangUp">
+      <arg type="s" name="callID" direction="in"/>
+    </method>
+    
+    <method name="hold">
+      <arg type="s" name="callID" direction="in"/>
+    </method>
+    
+    <method name="unhold">
+      <arg type="s" name="callID" direction="in"/>
+    </method>
+    
+    <method name="transfert">
+      <arg type="s" name="callID" direction="in"/>
+      <arg type="s" name="to" direction="in"/>
+    </method>
+    
+    <method name="playDTMF">
+      <arg type="s" name="key" direction="in"/>
+    </method>
+    
+    <method name="startTone">
+      <arg type="i" name="start" direction="in"/>
+      <arg type="i" name="type" direction="in"/>
+    </method>
+
+    <method name="setVolume">
+      <arg type="s" name="device" direction="in"/>
+      <arg type="d" name="value" direction="in"/>
+    </method>
+    
+    <method name="getVolume">
+      <arg type="s" name="device" direction="in"/>
+      <arg type="d" name="value" direction="out"/>
+    </method>
+
+    <method name="setRecording">
+      <arg type="s" name="callID" direction="in"/>
+    </method>
+
+     <method name="getIsRecording">
+      <arg type="s" name="callID" direction="in"/>
+      <arg type="b" name="isRecording" direction="out"/>
+    </method>
+    
+    <method name="getCallDetails">
+      <arg type="s" name="callID" direction="in"/>
+      <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/>
+      <arg type="a{ss}" name="infos" direction="out"/>
+    </method>
+    
+    <method name="getCurrentCallID">
+      <arg type="s" name="callID" direction="out"/>
+    </method>
+
+    <method name="getCurrentCodecName">
+      <arg type="s" name="callID" direction="in"/>
+      <arg type="s" name="codecName" direction="out"/>
+    </method>
+
+    <signal name="currentSelectedCodec">
+      <arg type="s" name="callID"  direction="out" />
+      <arg type="s" name="codecName"  direction="out"/>
+    </signal>
+    
+    <signal name="incomingCall">
+      <arg type="s" name="accountID" />
+      <arg type="s" name="callID" />
+      <arg type="s" name="from" />
+    </signal>
+    
+    <signal name="incomingMessage">
+      <arg type="s" name="accountID"  direction="out" />
+      <arg type="s" name="message"  direction="out"/>
+    </signal>
+    
+    <signal name="callStateChanged">
+      <arg type="s" name="callID"  direction="out"/>
+      <arg type="s" name="state"  direction="out"/>
+    </signal>
+    
+    <signal name="voiceMailNotify">
+      <arg type="s" name="accountID"  direction="out"/>
+      <arg type="i" name="count"  direction="out"/>
+    </signal>
+    
+    
+    <signal name="volumeChanged">
+      <arg type="s" name="device"  direction="out"/>
+      <arg type="d" name="value"  direction="out"/>
+    </signal>
+ 
+<!--
+    <signal name="error">
+      <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringString"/>
+      <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/>
+      <arg type="a{ss}" name="details"  direction="out"/>
+    </signal>
+-->
+
+  </interface>
+</node>
diff --git a/sflphone-client-kde/src/dbus/configurationmanager-introspec.xml b/sflphone-client-kde/src/dbus/configurationmanager-introspec.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9a4375bb0cfce1a67ff8790ae119202015d0ce16
--- /dev/null
+++ b/sflphone-client-kde/src/dbus/configurationmanager-introspec.xml
@@ -0,0 +1,323 @@
+<?xml version="1.0" ?>
+<node name="/org/sflphone/SFLphone">
+  <interface name="org.sflphone.SFLphone.ConfigurationManager">
+    
+  <!-- Accounts-related methods -->  
+    <method name="getAccountDetails">
+      <arg type="s" name="accountID" direction="in"/>
+      <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/>
+      <arg type="a{ss}" name="details" direction="out"/>
+    </method>
+    
+    <method name="setAccountDetails">
+      <annotation name="com.trolltech.QtDBus.QtTypeName.In1" value="MapStringString"/>
+      <arg type="s" name="accountID" direction="in"/>
+      <arg type="a{ss}" name="details" direction="in"/>
+    </method>
+    
+    <method name="addAccount">
+      <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringString"/>
+      <arg type="a{ss}" name="details" direction="in"/>
+      <arg type="s" name="createdAccountId" direction="out"/>
+    </method>
+    
+    <method name="setAccountsOrder">
+      <arg type="s" name="order" direction="in"/>
+    </method>
+    
+    <method name="removeAccount">
+      <arg type="s" name="accoundID" direction="in"/>
+    </method>
+    
+    <method name="getAccountList">
+      <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
+      <arg type="as" name="list" direction="out"/>
+    </method>
+   
+    <method name="sendRegister">
+      <arg type="s" name="accountID" direction="in"/>
+      <arg type="i" name="expire" direction="in"/>
+    </method>
+
+   <!--      ///////////////////////               -->
+
+  <!-- Various audio-related methods   -->
+ 
+    <method name="getToneLocaleList">
+      <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
+      <arg type="as" name="list" direction="out"/>
+    </method>
+  
+    <method name="getVersion">
+      <arg type="s" name="version" direction="out"/>
+    </method>
+    
+    <method name="getRingtoneList">
+      <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
+      <arg type="as" name="list" direction="out"/>
+    </method>
+   
+    <method name="getPlaybackDeviceList">
+      <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
+      <arg type="as" name="list" direction="out"/>
+    </method>
+    
+    <method name="getRecordDeviceList">
+      <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
+      <arg type="as" name="list" direction="out"/>
+    </method>
+    
+    <method name="isRingtoneEnabled">
+      <arg type="i" name="bool" direction="out"/>
+    </method>
+
+    <method name="ringtoneEnabled">
+    </method>
+
+    <method name="getRingtoneChoice">
+      <arg type="s" name="tone" direction="out"/>
+    </method>
+
+    <method name="setRingtoneChoice">
+      <arg type="s" name="tone" direction="in"/>
+    </method>
+
+    <method name="getAudioManager">
+      <arg type="i" name="api" direction="out"/>
+    </method>
+
+    <method name="setAudioManager">
+      <arg type="i" name="api" direction="in"/>
+    </method>
+    
+    <method name="getRecordPath">
+      <arg type="s" name="rec" direction="out"/>
+    </method>
+
+    <method name="setRecordPath">
+      <arg type="s" name="rec" direction="in"/>
+    </method>
+
+   <!--      ///////////////////////               -->
+   
+   <!-- Codecs-related methods -->
+ 
+    <method name="getCodecList">
+      <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
+      <arg type="as" name="list" direction="out"/>
+    </method>
+   
+   <method name="getCodecDetails">
+     <arg type="i" name="payload" direction="in"/>
+     <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
+     <arg type="as" name="details" direction="out"/>
+   </method>
+ 
+    <method name="getActiveCodecList">
+      <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
+      <arg type="as" name="list" direction="out"/>
+    </method>
+
+    <method name="setActiveCodecList">
+      <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="VectorString"/>
+      <arg type="as" name="list" direction="in"/>
+    </method>
+
+
+	<!-- Audio devices methods -->
+	
+    <method name="getInputAudioPluginList">
+      <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
+      <arg type="as" name="list" direction="out"/>
+    </method>
+		
+    <method name="getOutputAudioPluginList">
+      <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
+      <arg type="as" name="list" direction="out"/>
+    </method>
+    
+    <method name="setInputAudioPlugin">
+      <arg type="s" name="audioPlugin" direction="in"/>
+    </method>
+    
+    <method name="setOutputAudioPlugin">
+      <arg type="s" name="audioPlugin" direction="in"/>
+    </method>
+    
+    <method name="getAudioOutputDeviceList">
+      <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
+      <arg type="as" name="list" direction="out"/>
+    </method>
+    
+    <method name="setAudioOutputDevice">
+      <arg type="i" name="index" direction="in"/>
+    </method>
+    
+    <method name="getAudioInputDeviceList">
+      <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
+      <arg type="as" name="list" direction="out"/>
+    </method>
+    
+    <method name="setAudioInputDevice">
+      <arg type="i" name="index" direction="in"/>
+    </method>
+    
+    <method name="getCurrentAudioDevicesIndex">
+      <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
+      <arg type="as" name="list" direction="out"/>
+    </method>
+
+    <method name="getAudioDeviceIndex">
+      <arg type="s" name="name" direction="in"/>
+      <arg type="i" name="index" direction="out"/>
+    </method>
+
+    <method name="getCurrentAudioOutputPlugin">
+      <arg type="s" name="plugin" direction="out"/>
+    </method>
+
+  <!--    General Settings Panel         -->
+ 
+    <method name="isIax2Enabled">
+      <arg type="i" name="res" direction="out"/>
+    </method>
+
+    <method name="setNotify">
+    </method>
+
+    <method name="getNotify">
+      <arg type="i" name="level" direction="out"/>
+    </method>
+
+    <method name="setMailNotify">
+    </method>
+
+    <method name="getMailNotify">
+      <arg type="i" name="level" direction="out"/>
+    </method>
+
+    <method name="getDialpad">
+      <arg type="i" name="state" direction="out"/>
+    </method>
+
+    <method name="setDialpad">
+    </method>
+
+    <method name="getSearchbar">
+      <arg type="i" name="state" direction="out"/>
+    </method>
+
+    <method name="setSearchbar">
+    </method>
+
+    <method name="getVolumeControls">
+      <arg type="i" name="state" direction="out"/>
+    </method>
+
+    <method name="setVolumeControls">
+    </method>
+
+    <method name="getMaxCalls">
+      <arg type="i" name="calls" direction="out"/>
+    </method>
+
+    <method name="setMaxCalls">
+      <arg type="i" name="calls" direction="in"/>
+    </method>
+
+    <method name="startHidden">
+    </method>
+
+    <method name="isStartHidden">
+      <arg type="i" name="state" direction="out"/>
+    </method>
+
+    <method name="popupMode">
+      <arg type="i" name="state" direction="out"/>
+    </method>
+
+    <method name="switchPopupMode">
+    </method>
+
+    <method name="setPulseAppVolumeControl">
+    </method>
+
+    <method name="getPulseAppVolumeControl">
+      <arg type="i" name="state" direction="out"/>
+    </method>
+
+    <method name="setSipPort">
+      <arg type="i" name="port" direction="in"/>
+    </method>
+
+    <method name="getSipPort">
+      <arg type="i" name="port" direction="out"/>
+    </method>
+
+    <method name="setStunServer">
+      <arg type="s" name="server" direction="in"/>
+    </method>
+
+    <method name="getStunServer">
+      <arg type="s" name="server" direction="out"/>
+    </method>
+
+    <method name="enableStun">
+    </method>
+
+    <method name="isStunEnabled">
+      <arg type="i" name="state" direction="out"/>
+    </method>
+
+    <!-- Addressbook configuration -->
+    <method name="getAddressbookSettings">
+      <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringInt"/>
+      <arg type="a{si}" name="settings" direction="out"/>
+    </method>
+
+    <method name="setAddressbookSettings">
+      <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringInt"/>
+      <arg type="a{si}" name="settings" direction="in"/>
+    </method>
+
+	<!-- Addressbook list -->
+    <method name="getAddressbookList">
+      <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
+      <arg type="as" name="settings" direction="out"/>
+    </method>
+
+    <method name="setAddressbookList">
+      <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="VectorString"/>
+      <arg type="as" name="settings" direction="in"/>
+    </method>
+
+    <!-- Hook configuration -->
+    <method name="getHookSettings">
+      <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/>
+      <arg type="a{ss}" name="settings" direction="out"/>
+    </method>
+
+    <method name="setHookSettings">
+      <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringString"/>
+      <arg type="a{ss}" name="settings" direction="in"/>
+    </method>
+
+  <!--        /////////////////////////////       -->
+
+<!--
+    <signal name="parametersChanged">
+      <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringString"/>
+      <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/>
+      <arg type="a{ss}" name="details" direction="out"/>
+    </signal>
+-->    
+
+    <signal name="accountsChanged">
+    </signal>
+
+    <signal name="errorAlert">
+      <arg type="i" name="code" direction="out"/>
+    </signal>
+
+  </interface>
+</node>
diff --git a/sflphone-client-kde/src/dbus/instance-introspec.xml b/sflphone-client-kde/src/dbus/instance-introspec.xml
new file mode 100644
index 0000000000000000000000000000000000000000..90a60d632d04ca83039efcadcfa2f4981bfda39e
--- /dev/null
+++ b/sflphone-client-kde/src/dbus/instance-introspec.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" ?>
+<node name="/org/sflphone/SFLphone">
+  <interface name="org.sflphone.SFLphone.Instance">
+  
+    <method name="Register">
+      <arg type="i" name="pid" direction="in"/>
+      <arg type="s" name="name" direction="in"/>
+    </method>
+    
+    <method name="Unregister">
+      <arg type="i" name="pid" direction="in"/>
+    </method>
+    
+    <method name="getRegistrationCount">
+      <arg type="i" name="count" direction="out"/>
+    </method>
+  </interface>
+</node>