diff --git a/sflphone-client-gnome/src/dbus/callmanager-introspec.xml b/sflphone-client-gnome/src/dbus/callmanager-introspec.xml
index 2860a0f8dc6674b94684d6410fd1a23fff75566c..b925e31017b2ccd885e31fc3aed94bdedf1bc869 100644
--- a/sflphone-client-gnome/src/dbus/callmanager-introspec.xml
+++ b/sflphone-client-gnome/src/dbus/callmanager-introspec.xml
@@ -415,6 +415,7 @@
 				Notify clients that a new text message has been received. 
 			</tp:docstring>
 			<arg type="s" name="callID" />
+			<arg type="s" name="from" />
 			<arg type="s" name="message" />
 		</signal>
 
diff --git a/sflphone-client-gnome/src/dbus/dbus.c b/sflphone-client-gnome/src/dbus/dbus.c
index 5acd8c35f5014d24818dd4cbd844f34cd88ae92e..8458466e22e129c5b1a204130e31be3325dc5e5b 100644
--- a/sflphone-client-gnome/src/dbus/dbus.c
+++ b/sflphone-client-gnome/src/dbus/dbus.c
@@ -120,8 +120,7 @@ voice_mail_cb(DBusGProxy *proxy UNUSED, const gchar* accountID, const guint nb,
 }
 
 	static void
-incoming_message_cb(DBusGProxy *proxy UNUSED, const gchar* callID UNUSED,
-		const gchar* msg, void * foo  UNUSED )
+incoming_message_cb(DBusGProxy *proxy UNUSED, const gchar* callID UNUSED, const gchar *from, const gchar* msg, void * foo  UNUSED )
 {
 	DEBUG ("Message %s!",msg);
 
@@ -132,7 +131,7 @@ incoming_message_cb(DBusGProxy *proxy UNUSED, const gchar* callID UNUSED,
 	im_widget_display (&c);
 
 	/* Display le message */
-	im_widget_add_message (c, msg);
+	im_widget_add_message (c, from, msg);
 
 	if (c) {
 		notify_incoming_message (callID, msg);
@@ -573,7 +572,7 @@ dbus_connect()
 			G_CALLBACK(voice_mail_cb), NULL, NULL);
 
 	dbus_g_proxy_add_signal(callManagerProxy, "incomingMessage", G_TYPE_STRING,
-			G_TYPE_STRING, G_TYPE_INVALID);
+			G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID);
 	dbus_g_proxy_connect_signal(callManagerProxy, "incomingMessage",
 			G_CALLBACK(incoming_message_cb), NULL, NULL);
 
diff --git a/sflphone-client-gnome/src/widget/imwidget.c b/sflphone-client-gnome/src/widget/imwidget.c
index b3d994d5aa15f603b67815434e8c08e17495cbf5..be5fe393b2f361a537eac89770bb289f314f8b17 100644
--- a/sflphone-client-gnome/src/widget/imwidget.c
+++ b/sflphone-client-gnome/src/widget/imwidget.c
@@ -34,7 +34,7 @@
 #define WEBKIT_DIR "file://" DATA_DIR "/webkit/"
 
 	void
-im_widget_add_message (callable_obj_t *call, const gchar *message)
+im_widget_add_message (callable_obj_t *call, const gchar *from, const gchar *message)
 {
 	/* use the widget for this specific call, if exists */
 	if (!call){
@@ -50,7 +50,7 @@ im_widget_add_message (callable_obj_t *call, const gchar *message)
 			im_widget_add_call_header (call);
 
 			/* Prepare and execute the Javascript code */
-			gchar *script = g_strdup_printf("add_message('%s', '%s', '%s', '%s');", message, call->_peer_name, call->_peer_number, call->_peer_info);
+			gchar *script = g_strdup_printf("add_message('%s', '%s', '%s', '%s');", message, from, call->_peer_number, call->_peer_info);
 			webkit_web_view_execute_script (WEBKIT_WEB_VIEW(im->web_view), script);
 
 			/* Cleanup */
@@ -131,7 +131,7 @@ on_Textview_changed (GtkWidget *widget, GdkEventKey *event, gpointer user_data)
 					gchar *message = gtk_text_buffer_get_text (buffer, &start, &end, FALSE);
 
 					/* Display our own message in the chat window */
-					im_widget_add_message (im->call, message);
+					im_widget_add_message (im->call, "Me", message);
 
 					/* Send the message to the peer */
 					dbus_send_text_message (im->call->_callID, message);
diff --git a/sflphone-client-gnome/src/widget/imwidget.h b/sflphone-client-gnome/src/widget/imwidget.h
index b5e80b27df6eadb3c40ce4b64e16babd4e4b0a79..b1f16ac9661646a5a8eed8c7fad9f5cf54362fc4 100644
--- a/sflphone-client-gnome/src/widget/imwidget.h
+++ b/sflphone-client-gnome/src/widget/imwidget.h
@@ -72,7 +72,7 @@ void im_widget_display (callable_obj_t**);
 
 GType im_widget_get_type(void) G_GNUC_CONST;
 GtkWidget *im_widget_new(void);
-void im_widget_add_message (callable_obj_t *c, const gchar *message);
+void im_widget_add_message (callable_obj_t *c, const gchar *from, const gchar *message);
 
 G_END_DECLS
 
diff --git a/sflphone-common/src/dbus/callmanager-introspec.xml b/sflphone-common/src/dbus/callmanager-introspec.xml
index 2860a0f8dc6674b94684d6410fd1a23fff75566c..b925e31017b2ccd885e31fc3aed94bdedf1bc869 100644
--- a/sflphone-common/src/dbus/callmanager-introspec.xml
+++ b/sflphone-common/src/dbus/callmanager-introspec.xml
@@ -415,6 +415,7 @@
 				Notify clients that a new text message has been received. 
 			</tp:docstring>
 			<arg type="s" name="callID" />
+			<arg type="s" name="from" />
 			<arg type="s" name="message" />
 		</signal>
 
diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp
index 23450a327d85b8e86ff013969cd59de343c99417..735fbfe1d32f5e8be297d257ea6b9f621eaee91f 100644
--- a/sflphone-common/src/managerimpl.cpp
+++ b/sflphone-common/src/managerimpl.cpp
@@ -1616,9 +1616,10 @@ bool ManagerImpl::incomingCall (Call* call, const AccountID& accountId) {
 
 //THREAD=VoIP
 void ManagerImpl::incomingMessage (const CallID& callID,
+									const std::string& from,
                                    const std::string& message) {
     if (_dbus) {
-        _dbus->getCallManager()->incomingMessage (callID, message);
+        _dbus->getCallManager()->incomingMessage (callID, from, message);
     }
 }
 
diff --git a/sflphone-common/src/managerimpl.h b/sflphone-common/src/managerimpl.h
index b664f2a591830a0df528e3a5a8cc2cd994b822a8..277a9ececcd123e5ec65a91a38f5533ec3618b4d 100644
--- a/sflphone-common/src/managerimpl.h
+++ b/sflphone-common/src/managerimpl.h
@@ -398,7 +398,7 @@ class ManagerImpl {
      * @param accountId	The account identifier
      * @param message The content of the message
      */
-    void incomingMessage(const CallID& callId, const std::string& message);
+    void incomingMessage(const CallID& callId, const std::string& from, const std::string& message);
 
     /**
      * Notify the client he has voice mails
diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index 016dee689ccabf4e0067736d1c9b066a55dcce05..117076c1396574f82b2824a1b1f7403d91b27975 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -3366,8 +3366,9 @@ void call_on_tsx_changed (pjsip_inv_session *inv, pjsip_transaction *tsx, pjsip_
             // Pass through the instant messaging module if needed
             // Right now, it does do anything.
             // And notify the clients
-            Manager::instance ().incomingMessage (call->getCallId (),
-                                                  imModule->receive (message, call->getPeerNumber (), call->getCallId ()));
+            Manager::instance ().incomingMessage (	call->getCallId (),
+													call->getPeerNumber (),
+													imModule->receive (message, call->getPeerNumber (), call->getCallId ()));
         }