diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc
index 8f4b441542fd08858a27455c12702a52cc7285fd..be72e283fa68594c393b5c4ac37a42f670770059 100644
--- a/coreapi/linphonecore_jni.cc
+++ b/coreapi/linphonecore_jni.cc
@@ -2726,11 +2726,15 @@ extern "C" void Java_org_linphone_core_LinphoneChatMessageImpl_store(JNIEnv*  en
 	linphone_chat_message_store((LinphoneChatMessage*)ptr);
 }
 
-extern "C" jstring Java_org_linphone_core_LinphoneChatMessageImpl_getText(JNIEnv*  env
+extern "C" jbyteArray Java_org_linphone_core_LinphoneChatMessageImpl_getText(JNIEnv*  env
 																		,jobject  thiz
 																		,jlong ptr) {
-	jstring jvalue =env->NewStringUTF(linphone_chat_message_get_text((LinphoneChatMessage*)ptr));
-	return jvalue;
+	const char *message = linphone_chat_message_get_text((LinphoneChatMessage*)ptr);
+	size_t length = strlen(message);
+	jbyteArray array = env->NewByteArray(length);
+	env->SetByteArrayRegion(array, 0, length, (const jbyte*)message);
+
+	return array;
 }
 
 extern "C" jint Java_org_linphone_core_LinphoneChatMessageImpl_getReason(JNIEnv*  env
diff --git a/java/impl/org/linphone/core/LinphoneChatMessageImpl.java b/java/impl/org/linphone/core/LinphoneChatMessageImpl.java
index 7e6d474a229615a43c921649579272f503975870..6d6009c921cdab158117d95c106ec09a33460044 100644
--- a/java/impl/org/linphone/core/LinphoneChatMessageImpl.java
+++ b/java/impl/org/linphone/core/LinphoneChatMessageImpl.java
@@ -1,8 +1,10 @@
 package org.linphone.core;
 
+import java.io.UnsupportedEncodingException;
+
 public class LinphoneChatMessageImpl implements LinphoneChatMessage {
 	protected final long nativePtr;
-	private native String getText(long ptr);
+	private native byte[] getText(long ptr);
 	private native long getPeerAddress(long ptr);
 	private native String getExternalBodyUrl(long ptr);
 	private native void setExternalBodyUrl(long ptr, String url);
@@ -25,7 +27,12 @@ public class LinphoneChatMessageImpl implements LinphoneChatMessage {
 	
 	@Override
 	public String getText() {
-		return getText(nativePtr);
+		try {
+			return new String(getText(nativePtr), "UTF-8");
+		} catch (UnsupportedEncodingException e) {
+			e.printStackTrace();
+		}
+		return null;
 	}
 	
 	@Override