diff --git a/Makefile.am b/Makefile.am
index 8dc7f28e1dde2b564673fec2b447e5a6df0620d3..f774bdf57cdde3095aa6082adb35b7f09a5c383c 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -9,6 +9,6 @@ unittest:
 
 ACLOCAL_AMFLAGS = -I m4
 
-SUBDIRS = libs src ringtones po man 
+SUBDIRS = libs src ringtones po man test
 EXTRA_DIST = m4/*.m4 tools/*.sh platform/* images/* README.gentoo
 
diff --git a/src/sipvoiplink.cpp b/src/sipvoiplink.cpp
index df38379106c088a69e9cc2093d885952d521a191..41121e3daf3e8a3a6bc7f6c2396ed5cc3311e266 100644
--- a/src/sipvoiplink.cpp
+++ b/src/sipvoiplink.cpp
@@ -28,12 +28,9 @@
 #include <netinet/in.h>
 #include <arpa/nameser.h>
 #include <resolv.h>
-//extern struct state _res;
-
 
 #define CAN_REINVITE    1
 
-
 /**************** EXTERN VARIABLES AND FUNCTIONS (callbacks) **************************/
 
 /*
@@ -47,11 +44,11 @@ void get_remote_sdp_from_offer( pjsip_rx_data *rdata, pjmedia_sdp_session** r_sd
 int getModId();
 
 /**
- *  * Set audio (SDP) configuration for a call
- *   * localport, localip, localexternalport
- *    * @param call a SIPCall valid pointer
- *     * @return bool True
- *      */
+ * Set audio (SDP) configuration for a call
+ * localport, localip, localexternalport
+ * @param call a SIPCall valid pointer
+ * @return bool True
+ */
 bool setCallAudioLocal(SIPCall* call, std::string localIP, bool stun, std::string server);
 
 void handle_incoming_options (pjsip_rx_data *rxdata);
@@ -178,8 +175,6 @@ SIPVoIPLink* SIPVoIPLink::_instance = NULL;
     , _useStun(false)
       , _clients(0)
 {
-    _debug("SIPVoIPLink::~SIPVoIPLink(): sipvoiplink constructor called \n");    
-
     // to get random number for RANDOM_PORT
     srand (time(NULL));
 
@@ -191,7 +186,6 @@ SIPVoIPLink* SIPVoIPLink::_instance = NULL;
 
 SIPVoIPLink::~SIPVoIPLink()
 {
-    _debug("SIPVoIPLink::~SIPVoIPLink(): sipvoiplink destructor called \n");
     terminate();
 }
 
diff --git a/test/TestMain.cpp b/test/TestMain.cpp
index 310732ac596991664f6365d5563f3873c4ef5720..1bca8aeab19da9bab970ca4a6d462370aa775493 100644
--- a/test/TestMain.cpp
+++ b/test/TestMain.cpp
@@ -6,8 +6,7 @@ int main(int argc, const char* argv[])
     CppUnit::TextTestRunner runner;
     runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest());
 
-    runner.run();
+    return runner.run();
 
-    return 0;
 }
 
diff --git a/test/run-tests b/test/run-tests
new file mode 100755
index 0000000000000000000000000000000000000000..9b5d01405c9e5f6883b58946d129ae17b0b43f91
--- /dev/null
+++ b/test/run-tests
@@ -0,0 +1,24 @@
+#!/bin/bash
+
+myname="`basename $0`"
+failures=0
+
+for f in *
+do
+    # Skip ourself
+    if [ "$f" = "$myname" ]; then
+        continue
+    fi
+
+    if [ -x "$f" ]; then
+        echo
+        echo "=== Running [$f] test ==="
+        # Warning, libCppUnit returns 0 on failure.
+        ./"$f" && {
+            echo Warning: Failure in $f.
+            failures=$((failures+1))
+        }
+    fi
+done
+
+echo "Tests finshed, there were $failures failures."