diff --git a/src/com/savoirfairelinux/sflphone/client/ManagerImpl.java b/src/com/savoirfairelinux/sflphone/client/ManagerImpl.java
index 6346314e828985492c18fb88ad64ab67e11763c4..50fd15a4b17c1349336b5ee08524e11d8fbf86f2 100644
--- a/src/com/savoirfairelinux/sflphone/client/ManagerImpl.java
+++ b/src/com/savoirfairelinux/sflphone/client/ManagerImpl.java
@@ -48,5 +48,5 @@ public class ManagerImpl {
     public static native String getJniString();
 	public static native void initN(String config_file);
 	public static native void placeCall(String accountID, String callID, String to);
-	public static native void hangUp(String accountID);
+	public static native void hangUp(String callID);
 }
diff --git a/tests/src/com/savoirfairelinux/sflphone/client/ManagerImplTest.java b/tests/src/com/savoirfairelinux/sflphone/client/ManagerImplTest.java
index a4b547bba2dc8cdc77548b67b07526d0e3c1ad20..f93f3c88841d8cb9394d3f4f0dc3e402c89d768d 100644
--- a/tests/src/com/savoirfairelinux/sflphone/client/ManagerImplTest.java
+++ b/tests/src/com/savoirfairelinux/sflphone/client/ManagerImplTest.java
@@ -31,12 +31,35 @@
 
 package com.savoirfairelinux.sflphone;
 
+import java.lang.Thread;
 import android.test.AndroidTestCase;
 
 import com.savoirfairelinux.sflphone.client.ManagerImpl;
 
 public class ManagerImplTest extends AndroidTestCase {
     public static final String PACKAGE_NAME = "com.savoirfairelinux.sflphone";
+    public static final String ACCOUNT_ID = "IP2IP";
+    public static final String CALLING_VALID_IP = "127.0.0.1";
+    public static final String CALLING_BAD_IP = "123.234.123.234";
+    public static final String CALL_ID = "1234567";
+    public static final int CALL_SLEEP_TIME = 1000; // in ms
+
+    static {
+        System.loadLibrary("gnustl_shared");
+        System.loadLibrary("expat");
+        System.loadLibrary("yaml");
+        System.loadLibrary("ccgnu2");
+        System.loadLibrary("crypto");
+        System.loadLibrary("ssl");
+        System.loadLibrary("ccrtp1");
+        System.loadLibrary("dbus");
+        System.loadLibrary("dbus-c++-1");
+        System.loadLibrary("samplerate"); 
+        System.loadLibrary("codec_ulaw");
+        System.loadLibrary("codec_alaw");
+        System.loadLibrary("speexresampler");
+        System.loadLibrary("sflphone");
+    }
 
     ManagerImpl managerimpl;
 
@@ -45,6 +68,7 @@ public class ManagerImplTest extends AndroidTestCase {
         super.setUp();
 
         managerimpl = new ManagerImpl();
+        managerimpl.initN("");
     }
 
     @Override
@@ -56,4 +80,36 @@ public class ManagerImplTest extends AndroidTestCase {
         managerimpl.setAppPath(PACKAGE_NAME);
         assertTrue(managerimpl.getAppPath() == PACKAGE_NAME);
     }
+
+    public void testPlaceCallSuccessful() {
+        try {
+            managerimpl.placeCall(ACCOUNT_ID, CALL_ID, CALLING_VALID_IP);
+            assertTrue(true);
+
+            // FIXME: We should have a method returning the call state
+            //        and wait for the call to be in state CURRENT.
+            Thread.sleep(CALL_SLEEP_TIME);
+
+            managerimpl.hangUp(CALL_ID); 
+            assertTrue(true);
+
+        } catch (InterruptedException e) {
+            assertTrue(false);
+        }
+    }
+
+    public void testPlaceCallBad() {
+        try {
+            managerimpl.placeCall(ACCOUNT_ID, CALL_ID, CALLING_BAD_IP);
+            assertTrue(true);
+
+            Thread.sleep(CALL_SLEEP_TIME);
+
+            managerimpl.hangUp(CALL_ID);
+            assertTrue(true);
+
+        } catch (InterruptedException e) {
+            assertTrue(false);
+        }
+    }
 }