diff --git a/build.symbian/bld.inf b/build.symbian/bld.inf
index 5ded5ae..9e51ee9 100644
--- a/build.symbian/bld.inf
+++ b/build.symbian/bld.inf
@@ -1,3 +1,8 @@
+prj_platforms
+winscw
+armv5
+gcce
+
 prj_mmpfiles
 pjlib.mmp
 pjlib_util.mmp
diff --git a/build.symbian/pjlib.mmp b/build.symbian/pjlib.mmp
index 8ec56ca..e574b47 100644
--- a/build.symbian/pjlib.mmp
+++ b/build.symbian/pjlib.mmp
@@ -6,6 +6,8 @@
 SOURCEPATH	..\pjlib\src\pj
 
 OPTION		CW -lang c++
+OPTION		ARMCC --cpp
+OPTION		GCC	-x c++
 
 MACRO		PJ_M_I386=1
 MACRO		PJ_SYMBIAN=1
@@ -56,37 +58,37 @@
 SOURCE		timer_symbian.cpp
 SOURCE		unicode_symbian.cpp
 
-DOCUMENT	os_symbian.h
+//DOCUMENT	os_symbian.h
 
-DOCUMENT	pj\addr_resolv.h
-DOCUMENT	pj\array.h
-DOCUMENT	pj\assert.h
-DOCUMENT	pj\config.h
-DOCUMENT	pj\config_site.h
+//DOCUMENT	pj\addr_resolv.h
+//DOCUMENT	pj\array.h
+//DOCUMENT	pj\assert.h
+//DOCUMENT	pj\config.h
+//DOCUMENT	pj\config_site.h
 //DOCUMENT	pj\config_site_sample.h
-DOCUMENT	pj\ctype.h
-DOCUMENT	pj\errno.h
-DOCUMENT	pj\except.h
-DOCUMENT	pj\file_access.h
-DOCUMENT	pj\file_io.h
-DOCUMENT	pj\guid.h
-DOCUMENT	pj\hash.h
-DOCUMENT	pj\ioqueue.h
-DOCUMENT	pj\ip_helper.h
-DOCUMENT	pj\list.h
-DOCUMENT	pj\lock.h
-DOCUMENT	pj\log.h
-DOCUMENT	pj\os.h
-DOCUMENT	pj\\pool.h
-DOCUMENT	pj\\pool_buf.h
-DOCUMENT	pj\rand.h
-DOCUMENT	pj\rbtree.h
-DOCUMENT	pj\sock.h
-DOCUMENT	pj\sock_select.h
-DOCUMENT	pj\string.h
-DOCUMENT	pj\timer.h
-DOCUMENT	pj\types.h
-DOCUMENT	pj\unicode.h
+//DOCUMENT	pj\ctype.h
+//DOCUMENT	pj\errno.h
+//DOCUMENT	pj\except.h
+//DOCUMENT	pj\file_access.h
+//DOCUMENT	pj\file_io.h
+//DOCUMENT	pj\guid.h
+//DOCUMENT	pj\hash.h
+//DOCUMENT	pj\ioqueue.h
+//DOCUMENT	pj\ip_helper.h
+//DOCUMENT	pj\list.h
+//DOCUMENT	pj\lock.h
+//DOCUMENT	pj\log.h
+//DOCUMENT	pj\os.h
+//DOCUMENT	pj\\pool.h
+//DOCUMENT	pj\\pool_buf.h
+//DOCUMENT	pj\rand.h
+//DOCUMENT	pj\rbtree.h
+//DOCUMENT	pj\sock.h
+//DOCUMENT	pj\sock_select.h
+//DOCUMENT	pj\string.h
+//DOCUMENT	pj\timer.h
+//DOCUMENT	pj\types.h
+//DOCUMENT	pj\unicode.h
 
 SYSTEMINCLUDE	..\pjlib\include
 
diff --git a/build.symbian/pjlib_test.mmp b/build.symbian/pjlib_test.mmp
index 9836a14..ed88906 100644
--- a/build.symbian/pjlib_test.mmp
+++ b/build.symbian/pjlib_test.mmp
@@ -9,6 +9,8 @@
 MACRO		PJ_SYMBIAN=1
 
 OPTION		CW -lang c++
+OPTION		ARMCC --cpp
+OPTION		GCC	-x c++
 
 // Test files
 
diff --git a/build.symbian/pjlib_util.mmp b/build.symbian/pjlib_util.mmp
index 30f59fa..fc161ca 100644
--- a/build.symbian/pjlib_util.mmp
+++ b/build.symbian/pjlib_util.mmp
@@ -9,6 +9,8 @@
 MACRO		PJ_SYMBIAN=1
 
 OPTION		CW -lang c++
+OPTION		ARMCC --cpp
+OPTION		GCC	-x c++
 
 //
 // PJLIB-UTIL files
diff --git a/build.symbian/pjmedia.mmp b/build.symbian/pjmedia.mmp
index 7af3187..4534a45 100644
--- a/build.symbian/pjmedia.mmp
+++ b/build.symbian/pjmedia.mmp
@@ -1,80 +1,80 @@
-TARGET 		pjmedia.lib
-TARGETTYPE 	lib
-UID		0x100039CE 0x10004299
-VENDORID	0x70000001
-
-SOURCEPATH	..\pjmedia\src\pjmedia
-
-//OPTION		CW -lang c++
-
-MACRO		PJ_M_I386=1
-MACRO		PJ_SYMBIAN=1
-
-//
-// Platform independent source
-//
-
-SOURCE		alaw_ulaw.c
-SOURCE		alaw_ulaw_table.c
-SOURCE		bidirectional.c
-SOURCE		clock_thread.c
-SOURCE		codec.c
-SOURCE		conference.c
-SOURCE		echo_common.c
-SOURCE		echo_port.c
-SOURCE		echo_suppress.c
-SOURCE		endpoint.c
-SOURCE		errno.c
-SOURCE		g711.c
-SOURCE		jbuf.c
-SOURCE		master_port.c
-SOURCE		mem_capture.c
-SOURCE		mem_player.c
-SOURCE		null_port.c
-SOURCE		plc_common.c
-SOURCE		port.c
-SOURCE		resample_port.c
-SOURCE		resample_resample.c
-SOURCE		rtcp.c
-SOURCE		rtp.c
-//SDP files are in pjsdp.mmp
-//SOURCE		sdp.c
-//SOURCE		sdp_cmp.c
-//SOURCE		sdp_neg.c
-SOURCE		session.c
-SOURCE		silencedet.c
-SOURCE		sound_port.c
-SOURCE		splitcomb.c
-SOURCE		stream.c
-SOURCE		tonegen.c
-SOURCE		transport_ice.c
-SOURCE		transport_udp.c
-SOURCE		wav_player.c
-SOURCE		wav_playlist.c
-SOURCE		wav_writer.c
-SOURCE		wave.c
-
-//
-// Symbian specific
-// These are on separate project
-//
-//SOURCE		symbian_sound.cpp
-//SOURCE		null_sound.c
-
-
-//
-// Header files
-//
-
-
-SYSTEMINCLUDE	..\pjmedia\include
-SYSTEMINCLUDE	..\pjlib\include 
-SYSTEMINCLUDE	..\pjlib-util\include 
-SYSTEMINCLUDE	..\pjnath\include 
-
-SYSTEMINCLUDE	\epoc32\include
-SYSTEMINCLUDE	\epoc32\include\libc
-SYSTEMINCLUDE	\epoc32\include\mmf\plugin
-
-CAPABILITY	None
-
+TARGET 		pjmedia.lib
+TARGETTYPE 	lib
+UID		0x100039CE 0x10004299
+VENDORID	0x70000001
+
+SOURCEPATH	..\pjmedia\src\pjmedia
+
+//OPTION		CW -lang c++
+
+MACRO		PJ_M_I386=1
+MACRO		PJ_SYMBIAN=1
+
+//
+// Platform independent source
+//
+
+SOURCE		alaw_ulaw.c
+SOURCE		alaw_ulaw_table.c
+SOURCE		bidirectional.c
+SOURCE		clock_thread.c
+SOURCE		codec.c
+SOURCE		conference.c
+SOURCE		echo_common.c
+SOURCE		echo_port.c
+SOURCE		echo_suppress.c
+SOURCE		endpoint.c
+SOURCE		errno.c
+SOURCE		g711.c
+SOURCE		jbuf.c
+SOURCE		master_port.c
+SOURCE		mem_capture.c
+SOURCE		mem_player.c
+SOURCE		null_port.c
+SOURCE		plc_common.c
+SOURCE		port.c
+SOURCE		resample_port.c
+SOURCE		resample_resample.c
+SOURCE		rtcp.c
+SOURCE		rtp.c
+//SDP files are in pjsdp.mmp
+//SOURCE		sdp.c
+//SOURCE		sdp_cmp.c
+//SOURCE		sdp_neg.c
+SOURCE		session.c
+SOURCE		silencedet.c
+SOURCE		sound_port.c
+SOURCE		splitcomb.c
+SOURCE		stream.c
+SOURCE		tonegen.c
+SOURCE		transport_ice.c
+SOURCE		transport_udp.c
+SOURCE		wav_player.c
+SOURCE		wav_playlist.c
+SOURCE		wav_writer.c
+SOURCE		wave.c
+
+//
+// Symbian specific
+// These are on separate project
+//
+//SOURCE		symbian_sound.cpp
+//SOURCE		null_sound.c
+
+
+//
+// Header files
+//
+
+
+SYSTEMINCLUDE	..\pjmedia\include
+SYSTEMINCLUDE	..\pjlib\include 
+SYSTEMINCLUDE	..\pjlib-util\include 
+SYSTEMINCLUDE	..\pjnath\include 
+
+SYSTEMINCLUDE	\epoc32\include
+SYSTEMINCLUDE	\epoc32\include\libc
+//SYSTEMINCLUDE	\epoc32\include\mmf\plugin
+
+CAPABILITY	None
+
diff --git a/build.symbian/pjnath.mmp b/build.symbian/pjnath.mmp
index 8e648dd..2bd8691 100644
--- a/build.symbian/pjnath.mmp
+++ b/build.symbian/pjnath.mmp
@@ -8,7 +8,9 @@
 MACRO		PJ_M_I386=1
 MACRO		PJ_SYMBIAN=1
 
-//OPTION		CW -lang c++
+OPTION		CW -lang c++
+OPTION		ARMCC --cpp
+OPTION		GCC	-x c++
 
 //
 // PJNATH files
@@ -45,7 +47,7 @@
 SYSTEMINCLUDE	\epoc32\include
 SYSTEMINCLUDE	\epoc32\include\libc
 
-LIBRARY		pjlib.lib 
-LIBRARY		pjlib_util.lib 
+//STATICLIBRARY		pjlib.lib 
+//STATICLIBRARY		pjlib_util.lib 
 CAPABILITY	None
 
diff --git a/build.symbian/pjsdp.mmp b/build.symbian/pjsdp.mmp
index 97f461b..3ff46f1 100644
--- a/build.symbian/pjsdp.mmp
+++ b/build.symbian/pjsdp.mmp
@@ -6,6 +6,8 @@
 SOURCEPATH	..\pjmedia\src\pjmedia
 
 OPTION		CW -lang c++
+OPTION		ARMCC --cpp
+OPTION		GCC	-x c++
 
 MACRO		PJ_M_I386=1
 MACRO		PJ_SYMBIAN=1
diff --git a/build.symbian/pjsip.mmp b/build.symbian/pjsip.mmp
index d1dd741..cabb74b 100644
--- a/build.symbian/pjsip.mmp
+++ b/build.symbian/pjsip.mmp
@@ -9,6 +9,8 @@
 MACRO		PJ_SYMBIAN=1
 
 OPTION		CW -lang c++
+OPTION		ARMCC --cpp
+OPTION		GCC	-x c++
 
 // PJSIP-CORE files
 
diff --git a/build.symbian/pjsip_simple.mmp b/build.symbian/pjsip_simple.mmp
index 0ff7f16..f77c5b4 100644
--- a/build.symbian/pjsip_simple.mmp
+++ b/build.symbian/pjsip_simple.mmp
@@ -9,6 +9,8 @@
 MACRO		PJ_SYMBIAN=1
 
 OPTION		CW -lang c++
+OPTION		ARMCC --cpp
+OPTION		GCC	-x c++
 
 
 // PJSIP-SIMPLE files
diff --git a/build.symbian/pjsip_ua.mmp b/build.symbian/pjsip_ua.mmp
index cef5373..08ab245 100644
--- a/build.symbian/pjsip_ua.mmp
+++ b/build.symbian/pjsip_ua.mmp
@@ -11,7 +11,7 @@
 //OPTION		CW -lang c++
 
 
-// PJSIP-SIMPLE files
+// PJSIP-UA files
 
 SOURCE	sip_inv.c
 SOURCE	sip_reg.c
diff --git a/build.symbian/pjstun_client.mmp b/build.symbian/pjstun_client.mmp
index 98194e8..2c9d352 100644
--- a/build.symbian/pjstun_client.mmp
+++ b/build.symbian/pjstun_client.mmp
@@ -9,6 +9,8 @@
 MACRO		PJ_SYMBIAN=1
 
 OPTION		CW -lang c++
+OPTION		ARMCC --cpp
+OPTION		GCC	-x c++
 
 // PJSTUN-CLIENT files
 
diff --git a/pjlib/include/pj/compat/cc_armcc.h b/pjlib/include/pj/compat/cc_armcc.h
index 504ca88..52fe74c 100644
--- a/pjlib/include/pj/compat/cc_armcc.h
+++ b/pjlib/include/pj/compat/cc_armcc.h
@@ -33,8 +33,12 @@
 #define PJ_CC_VER_2		__ARMCC_MINOR__
 #define PJ_CC_VER_3		__ARMCC_PATCHLEVEL__
 
+#ifdef __cplusplus
+#  define PJ_INLINE_SPECIFIER	inline
+#else
+#  define PJ_INLINE_SPECIFIER	static __inline
+#endif
 
-#define PJ_INLINE_SPECIFIER	static // why is not inline accepted?
 #define PJ_THREAD_FUNC	
 #define PJ_NORETURN		
 #define PJ_ATTR_NORETURN	__attribute__ ((noreturn))
diff --git a/pjlib/include/pj/compat/os_symbian.h b/pjlib/include/pj/compat/os_symbian.h
index b1b1cd1..f6787b0 100644
--- a/pjlib/include/pj/compat/os_symbian.h
+++ b/pjlib/include/pj/compat/os_symbian.h
@@ -144,7 +144,9 @@
 #define PJ_HAS_SOCKLEN_T		1
 typedef unsigned int socklen_t;
 
+#ifndef __GCCE__
 #include <e32def.h>
+#endif
 
 /*
 #if defined(PJ_EXPORTING)
diff --git a/pjlib/include/pj/errno.h b/pjlib/include/pj/errno.h
index cd5d916..df6c1b0 100644
--- a/pjlib/include/pj/errno.h
+++ b/pjlib/include/pj/errno.h
@@ -111,6 +111,7 @@
 PJ_DECL(pj_str_t) pj_strerror( pj_status_t statcode, 
 			       char *buf, pj_size_t bufsize);
 
+typedef pj_str_t (*pjsip_error_callback)(pj_status_t, char*, pj_size_t);
 /**
  * Register strerror message handler for the specified error space.
  * Application can register its own handler to supply the error message
@@ -132,8 +133,7 @@
  */
 PJ_DECL(pj_status_t) pj_register_strerror(pj_status_t start_code,
 					  pj_status_t err_space,
-					  pj_str_t (*f)(pj_status_t,char*,
-							pj_size_t));
+					  pjsip_error_callback f);
 
 /**
  * @hideinitializer
diff --git a/pjlib/include/pj/except.h b/pjlib/include/pj/except.h
index 610f462..509b01b 100644
--- a/pjlib/include/pj/except.h
+++ b/pjlib/include/pj/except.h
@@ -26,6 +26,7 @@
 
 #include <pj/types.h>
 #include <pj/compat/setjmp.h>
+#include <pj/log.h>
 
 
 PJ_BEGIN_DECL
@@ -265,6 +266,15 @@
 				while (0)
 #define PJ_GET_EXCEPTION()	pj_excp_.code_
 
+#else
+
+#define PJ_USE_EXCEPTION
+#define PJ_TRY				
+#define PJ_CATCH_ANY		if (0)
+#define PJ_END
+#define PJ_THROW(x_id)		do { PJ_LOG(1,("PJ_THROW"," error code = %d",x_id)); } while (0)
+#define PJ_GET_EXCEPTION()	0
+
 #endif	/* __cplusplus */
 
 #else
diff --git a/pjlib/include/pj/types.h b/pjlib/include/pj/types.h
index 7b7598b..e909552 100644
--- a/pjlib/include/pj/types.h
+++ b/pjlib/include/pj/types.h
@@ -302,6 +302,7 @@
  */
 PJ_DECL(void) pj_shutdown(void);
 
+typedef void (*pj_exit_callback)(void);
 /**
  * Register cleanup function to be called by PJLIB when pj_shutdown() is 
  * called.
@@ -310,7 +311,7 @@
  *
  * @return PJ_SUCCESS on success.
  */
-PJ_DECL(pj_status_t) pj_atexit(void (*func)(void));
+PJ_DECL(pj_status_t) pj_atexit(pj_exit_callback func);
 
 
 
diff --git a/pjlib/src/pj/addr_resolv_symbian.cpp b/pjlib/src/pj/addr_resolv_symbian.cpp
index c9a776c..95da5cd 100644
--- a/pjlib/src/pj/addr_resolv_symbian.cpp
+++ b/pjlib/src/pj/addr_resolv_symbian.cpp
@@ -35,7 +35,7 @@
     // Convert name to Unicode
     wchar_t name16[PJ_MAX_HOSTNAME];
     pj_ansi_to_unicode(name->ptr, name->slen, name16, PJ_ARRAY_SIZE(name16));
-    TPtrC16 data(name16);
+    TPtrC16 data((const TUint16*)name16);
 
     // Resolve!
     TNameEntry nameEntry;
@@ -65,7 +65,7 @@
     static pj_sockaddr_in resolved_addr;
 
     // Convert the official address to ANSI.
-    pj_unicode_to_ansi(nameEntry().iName.Ptr(), nameEntry().iName.Length(),
+    pj_unicode_to_ansi((const wchar_t*)nameEntry().iName.Ptr(), nameEntry().iName.Length(),
 		       resolved_name, sizeof(resolved_name));
 
     // Convert IP address
diff --git a/pjlib/src/pj/errno.c b/pjlib/src/pj/errno.c
index f82c22d..f7273a4 100644
--- a/pjlib/src/pj/errno.c
+++ b/pjlib/src/pj/errno.c
@@ -103,8 +103,7 @@
 /* Register strerror handle. */
 PJ_DECL(pj_status_t) pj_register_strerror(pj_status_t start,
 					  pj_status_t space,
-					  pj_str_t (*f)(pj_status_t,char*,
-							pj_size_t))
+					  pjsip_error_callback f)
 {
     unsigned i;
 
diff --git a/pjlib/src/pj/exception_symbian.cpp b/pjlib/src/pj/exception_symbian.cpp
index 1d47533..6f2e080 100644
--- a/pjlib/src/pj/exception_symbian.cpp
+++ b/pjlib/src/pj/exception_symbian.cpp
@@ -22,7 +22,6 @@
 #include <pj/log.h>
 #include <pj/errno.h>
 
-static long thread_local_id = -1;
 
 #if defined(PJ_HAS_EXCEPTION_NAMES) && PJ_HAS_EXCEPTION_NAMES != 0
     static const char *exception_id_names[PJ_MAX_EXCEPTION_ID];
diff --git a/pjlib/src/pj/os_core_symbian.cpp b/pjlib/src/pj/os_core_symbian.cpp
index 742fe5a..a3ec3c0 100644
--- a/pjlib/src/pj/os_core_symbian.cpp
+++ b/pjlib/src/pj/os_core_symbian.cpp
@@ -301,7 +301,7 @@
 }
 
 
-PJ_DEF(pj_status_t) pj_atexit(void (*func)(void))
+PJ_DEF(pj_status_t) pj_atexit(pj_exit_callback func)
 {
     if (atexit_count >= PJ_ARRAY_SIZE(atexit_func))
 	return PJ_ETOOMANY;
@@ -459,7 +459,7 @@
  */
 PJ_DEF(void) pj_thread_local_free(long index)
 {
-    PJ_ASSERT_ON_FAIL(index >= 0 && index < PJ_ARRAY_SIZE(tls_vars) &&
+    PJ_ASSERT_ON_FAIL(index >= 0 && index < (int)PJ_ARRAY_SIZE(tls_vars) &&
 		     tls_vars[index] != 0, return);
 
     tls_vars[index] = 0;
@@ -473,7 +473,7 @@
 {
     pj_thread_t *rec = pj_thread_this();
 
-    PJ_ASSERT_RETURN(index >= 0 && index < PJ_ARRAY_SIZE(tls_vars) &&
+    PJ_ASSERT_RETURN(index >= 0 && index < (int)PJ_ARRAY_SIZE(tls_vars) &&
 		     tls_vars[index] != 0, PJ_EINVAL);
 
     rec->tls_values[index] = value;
@@ -487,7 +487,7 @@
 {
     pj_thread_t *rec = pj_thread_this();
 
-    PJ_ASSERT_RETURN(index >= 0 && index < PJ_ARRAY_SIZE(tls_vars) &&
+    PJ_ASSERT_RETURN(index >= 0 && index < (int)PJ_ARRAY_SIZE(tls_vars) &&
 		     tls_vars[index] != 0, NULL);
 
     return rec->tls_values[index];
diff --git a/pjlib/src/pj/sock_symbian.cpp b/pjlib/src/pj/sock_symbian.cpp
index ae691ba..3896091 100644
--- a/pjlib/src/pj/sock_symbian.cpp
+++ b/pjlib/src/pj/sock_symbian.cpp
@@ -271,7 +271,7 @@
     TInetAddr temp_addr((TUint32)pj_ntohl(inaddr.s_addr), (TUint)0);
     temp_addr.Output(str16);
  
-    return pj_unicode_to_ansi(str16.PtrZ(), str16.Length(),
+    return pj_unicode_to_ansi((const wchar_t*)str16.PtrZ(), str16.Length(),
 			      str8, sizeof(str8));
 }
 
@@ -307,7 +307,7 @@
     pj_ansi_to_unicode(tempaddr8, pj_ansi_strlen(tempaddr8),
 		       tempaddr16, sizeof(tempaddr16));
 
-    TBuf<MAXIPLEN> ip_addr(tempaddr16);
+    TBuf<MAXIPLEN> ip_addr((const TText*)tempaddr16);
 
     TInetAddr addr;
     addr.Init(KAfInet);
@@ -418,7 +418,7 @@
 	resv.GetHostName(tmpName, reqStatus);
 	User::WaitForRequest(reqStatus);
 
-	hostname.ptr = pj_unicode_to_ansi(tmpName.Ptr(), tmpName.Length(),
+	hostname.ptr = pj_unicode_to_ansi((const wchar_t*)tmpName.Ptr(), tmpName.Length(),
 					  buf, sizeof(buf));
 	hostname.slen = tmpName.Length();
     }
@@ -551,7 +551,7 @@
     PJ_CHECK_STACK();
     
     PJ_ASSERT_RETURN(sock && addr && namelen && 
-		     *namelen>=sizeof(pj_sockaddr_in), PJ_EINVAL);
+		     *namelen>=(int)sizeof(pj_sockaddr_in), PJ_EINVAL);
 
     CPjSocket *pjSock = (CPjSocket*)sock;
     RSocket &rSock = pjSock->Socket();
@@ -578,7 +578,7 @@
     PJ_CHECK_STACK();
     
     PJ_ASSERT_RETURN(sock && addr && namelen && 
-		     *namelen>=sizeof(pj_sockaddr_in), PJ_EINVAL);
+		     *namelen>=(int)sizeof(pj_sockaddr_in), PJ_EINVAL);
 
     CPjSocket *pjSock = (CPjSocket*)sock;
     RSocket &rSock = pjSock->Socket();
@@ -728,7 +728,7 @@
 
     PJ_ASSERT_RETURN(sock && buf && len && from && fromlen, PJ_EINVAL);
     PJ_ASSERT_RETURN(*len > 0, PJ_EINVAL);
-    PJ_ASSERT_RETURN(*fromlen >= sizeof(pj_sockaddr_in), PJ_EINVAL);
+    PJ_ASSERT_RETURN(*fromlen >= (int)sizeof(pj_sockaddr_in), PJ_EINVAL);
 
     CPjSocket *pjSock = (CPjSocket*)sock;
     RSocket &rSock = pjSock->Socket();
diff --git a/pjlib/src/pjlib-test/main_symbian.cpp b/pjlib/src/pjlib-test/main_symbian.cpp
index c2c808b..e57b080 100644
--- a/pjlib/src/pjlib-test/main_symbian.cpp
+++ b/pjlib/src/pjlib-test/main_symbian.cpp
@@ -51,7 +51,7 @@
     //
     // add your program code here, example code below
     //
-    int rc = test_main();
+    test_main();
 
     console->Printf(_L(" [press any key]\n"));
     console->Getch();
diff --git a/pjmedia/src/pjmedia/bidirectional.c b/pjmedia/src/pjmedia/bidirectional.c
index 441e895..a504c73 100644
--- a/pjmedia/src/pjmedia/bidirectional.c
+++ b/pjmedia/src/pjmedia/bidirectional.c
@@ -54,7 +54,7 @@
 {
     struct bidir_port *port;
 
-    port = pj_pool_zalloc(pool, sizeof(struct bidir_port));
+    port = PJ_POOL_ZALLOC_T(pool, struct bidir_port);
 
     pjmedia_port_info_init(&port->base.info, &get_port->info.name, SIGNATURE,
 			   get_port->info.clock_rate,
diff --git a/pjmedia/src/pjmedia/echo_common.c b/pjmedia/src/pjmedia/echo_common.c
index 5f392ef..079333b 100644
--- a/pjmedia/src/pjmedia/echo_common.c
+++ b/pjmedia/src/pjmedia/echo_common.c
@@ -17,6 +17,7 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
  */
 
+#include <pjmedia/config.h>
 #include <pjmedia/echo.h>
 #include <pj/assert.h>
 #include <pj/pool.h>
diff --git a/pjmedia/src/pjmedia/nullsound.c b/pjmedia/src/pjmedia/nullsound.c
index 2b82bd1..f0c065e 100644
--- a/pjmedia/src/pjmedia/nullsound.c
+++ b/pjmedia/src/pjmedia/nullsound.c
@@ -67,7 +67,7 @@
 
 PJ_DEF(const pjmedia_snd_dev_info*) pjmedia_snd_get_dev_info(unsigned index)
 {
-    PJ_ASSERT_RETURN(index==0 || index==-1, NULL);
+    PJ_ASSERT_RETURN(index==0 || index==(unsigned)-1, NULL);
     return &null_info;
 }
 
diff --git a/pjsip-apps/src/samples/sndinfo.c b/pjsip-apps/src/samples/sndinfo.c
index d7815c2..7852145 100644
--- a/pjsip-apps/src/samples/sndinfo.c
+++ b/pjsip-apps/src/samples/sndinfo.c
@@ -256,7 +256,6 @@
     
     if (argc == 1) {
 	enum_devices();
-	return 0;
     } else if (argc == 6) {
 	
 	int dev_id;
diff --git a/pjsip/include/pjsip/sip_transport.h b/pjsip/include/pjsip/sip_transport.h
index 5137ef7..aadd51e 100644
--- a/pjsip/include/pjsip/sip_transport.h
+++ b/pjsip/include/pjsip/sip_transport.h
@@ -605,7 +605,8 @@
  * TRANSPORT
  *
  *****************************************************************************/
-
+typedef void (*pjsip_transport_callback)(pjsip_transport *tp, void *token,
+                                         pj_ssize_t sent_bytes);
 /**
  * This structure represent the "public" interface of a SIP transport.
  * Applications normally extend this structure to include transport
@@ -671,9 +672,7 @@
 			    const pj_sockaddr_t *rem_addr,
 			    int addr_len,
 			    void *token,
-			    void (*callback)(pjsip_transport *transport,
-					     void *token, 
-					     pj_ssize_t sent_bytes));
+			    pjsip_transport_callback callback);
 
     /**
      * Instruct the transport to initiate graceful shutdown procedure.
@@ -884,7 +883,8 @@
  * TRANSPORT MANAGER
  *
  *****************************************************************************/
-
+typedef void (*pjsip_rx_callback)(pjsip_endpoint*, pj_status_t, pjsip_rx_data *);
+typedef pj_status_t (*pjsip_tx_callback)(pjsip_endpoint*, pjsip_tx_data*);
 /**
  * Create a new transport manager.
  *
@@ -899,11 +899,8 @@
  */
 PJ_DECL(pj_status_t) pjsip_tpmgr_create( pj_pool_t *pool,
 					 pjsip_endpoint * endpt,
-					 void (*rx_cb)(pjsip_endpoint*,
-						       pj_status_t,
-						       pjsip_rx_data *),
-					 pj_status_t (*tx_cb)(pjsip_endpoint*,
-							      pjsip_tx_data*),
+					 pjsip_rx_callback rx_cb,
+					 pjsip_tx_callback tx_cb,
 					 pjsip_tpmgr **p_mgr);
 
 
@@ -987,7 +984,8 @@
 						   const pjsip_tpselector *sel,
 						   pjsip_transport **tp);
 
-
+typedef void (*pjsip_tp_send_callback)(void *token, pjsip_tx_data *tdata,
+									   pj_ssize_t bytes_sent);
 /**
  * Send a SIP message using the specified transport.
  */
@@ -996,9 +994,7 @@
 					   const pj_sockaddr_t *addr,
 					   int addr_len,
 					   void *token,
-					   void (*cb)(void *token, 
-						      pjsip_tx_data *tdata,
-						      pj_ssize_t bytes_sent));
+					   pjsip_tp_send_callback cb);
 
 
 /**
diff --git a/pjsip/include/pjsip/sip_util.h b/pjsip/include/pjsip/sip_util.h
index 62fb847..18c1ce7 100644
--- a/pjsip/include/pjsip/sip_util.h
+++ b/pjsip/include/pjsip/sip_util.h
@@ -258,6 +258,8 @@
 		   pj_bool_t *cont);
 } pjsip_send_state;
 
+typedef void (*pjsip_endpt_callback)(pjsip_send_state*, pj_ssize_t sent,
+									 pj_bool_t *cont);
 /**
  * Send outgoing request statelessly The function will take care of which 
  * destination and transport to use based on the information in the message,
@@ -279,9 +281,7 @@
 pjsip_endpt_send_request_stateless( pjsip_endpoint *endpt,
 				    pjsip_tx_data *tdata,
 				    void *token,
-				    void (*cb)(pjsip_send_state*,
-					       pj_ssize_t sent,
-					       pj_bool_t *cont));
+				    pjsip_endpt_callback cb);
 
 /**
  * This structure describes destination information to send response.
@@ -357,9 +357,7 @@
 					        pjsip_response_addr *res_addr,
 					        pjsip_tx_data *tdata,
 						void *token,
-						void (*cb)(pjsip_send_state*,
-							   pj_ssize_t sent,
-							   pj_bool_t *cont));
+						pjsip_endpt_callback cb);
 
 /**
  * This is a convenient function which wraps #pjsip_get_response_addr() and
@@ -382,9 +380,7 @@
 					        pjsip_rx_data *rdata,
 					        pjsip_tx_data *tdata,
 						void *token,
-						void (*cb)(pjsip_send_state*,
-							   pj_ssize_t sent,
-							   pj_bool_t *cont));
+						pjsip_endpt_callback cb);
 
 /**
  * This composite function sends response message statelessly to an incoming
@@ -445,6 +441,7 @@
 					  const pjsip_msg_body *body,
 					  pjsip_transaction **p_tsx );
 
+typedef void (*pjsip_endpt_send_callback)(void*, pjsip_event*);
 /**
  * Send outgoing request and initiate UAC transaction for the request.
  * This is an auxiliary function to be used by application to send arbitrary
@@ -469,7 +466,7 @@
 					       pjsip_tx_data *tdata,
 					       pj_int32_t timeout,
 					       void *token,
-					       void (*cb)(void*,pjsip_event*));
+					       pjsip_endpt_send_callback cb);
 
 /**
  * @}
diff --git a/pjsip/src/pjsip/sip_parser.c b/pjsip/src/pjsip/sip_parser.c
index 644532e..32a511c 100644
--- a/pjsip/src/pjsip/sip_parser.c
+++ b/pjsip/src/pjsip/sip_parser.c
@@ -908,6 +908,7 @@
 
     parsing_headers = PJ_FALSE;
 
+retry_parse:
     PJ_TRY 
     {
 	if (parsing_headers)
@@ -1054,7 +1055,7 @@
 
 	    /* Continue parse next header, if any. */
 	    if (!pj_scan_is_eof(scanner) && !IS_NEWLINE(*scanner->curptr)) {
-		goto parse_headers;
+		goto retry_parse;
 	    }
 	}
 
diff --git a/pjsip/src/pjsip/sip_transport.c b/pjsip/src/pjsip/sip_transport.c
index 91ac434..49afe46 100644
--- a/pjsip/src/pjsip/sip_transport.c
+++ b/pjsip/src/pjsip/sip_transport.c
@@ -548,9 +548,7 @@
 					   const pj_sockaddr_t *addr,
 					   int addr_len,
 					   void *token,
-					   void (*cb)(void *token, 
-						      pjsip_tx_data *tdata,
-						      pj_ssize_t))
+					   pjsip_tp_send_callback cb)
 {
     pj_status_t status;
 
@@ -883,11 +881,8 @@
  */
 PJ_DEF(pj_status_t) pjsip_tpmgr_create( pj_pool_t *pool,
 					pjsip_endpoint *endpt,
-					void (*rx_cb)(pjsip_endpoint*,
-						      pj_status_t,
-						      pjsip_rx_data *),
-					pj_status_t (*tx_cb)(pjsip_endpoint*,
-							     pjsip_tx_data*),
+					pjsip_rx_callback rx_cb,
+					pjsip_tx_callback tx_cb,
 					pjsip_tpmgr **p_mgr)
 {
     pjsip_tpmgr *mgr;
diff --git a/pjsip/src/pjsip/sip_transport_loop.c b/pjsip/src/pjsip/sip_transport_loop.c
index 2512197..d49fb3b 100644
--- a/pjsip/src/pjsip/sip_transport_loop.c
+++ b/pjsip/src/pjsip/sip_transport_loop.c
@@ -145,9 +145,7 @@
 				  const pj_sockaddr_t *rem_addr,
 				  int addr_len,
 				  void *token,
-				  void (*cb)(pjsip_transport *transport,
-					     void *token, 
-					     pj_ssize_t sent_bytes))
+				  pjsip_transport_callback cb)
 {
     struct loop_transport *loop = (struct loop_transport*)tp;
     struct recv_list *recv_pkt;
diff --git a/pjsip/src/pjsip/sip_transport_tcp.c b/pjsip/src/pjsip/sip_transport_tcp.c
index 70008a7..40ec04b 100644
--- a/pjsip/src/pjsip/sip_transport_tcp.c
+++ b/pjsip/src/pjsip/sip_transport_tcp.c
@@ -449,9 +449,7 @@
 				const pj_sockaddr_t *rem_addr,
 				int addr_len,
 				void *token,
-				void (*callback)(pjsip_transport *transport,
-						 void *token, 
-						 pj_ssize_t sent_bytes));
+				pjsip_transport_callback callback);
 
 /* Called by transport manager to shutdown */
 static pj_status_t tcp_shutdown(pjsip_transport *transport);
@@ -1038,9 +1036,7 @@
 				const pj_sockaddr_t *rem_addr,
 				int addr_len,
 				void *token,
-				void (*callback)(pjsip_transport *transport,
-						 void *token, 
-						 pj_ssize_t sent_bytes))
+				pjsip_transport_callback callback)
 {
     struct tcp_transport *tcp = (struct tcp_transport*)transport;
     pj_ssize_t size;
@@ -1252,7 +1248,7 @@
 
 	/* Read next packet. */
 	bytes_read = sizeof(rdata->pkt_info.packet) - rdata->pkt_info.len;
-	rdata->pkt_info.src_addr_len = sizeof(rdata->pkt_info.src_addr);
+	rdata->pkt_info.src_addr_len = sizeof(pj_sockaddr_in);
 	status = pj_ioqueue_recv(key, op_key, 
 				 rdata->pkt_info.packet+rdata->pkt_info.len,
 				 &bytes_read, flags);
diff --git a/pjsip/src/pjsip/sip_transport_udp.c b/pjsip/src/pjsip/sip_transport_udp.c
index 02b86fb..48da26f 100644
--- a/pjsip/src/pjsip/sip_transport_udp.c
+++ b/pjsip/src/pjsip/sip_transport_udp.c
@@ -286,9 +286,7 @@
 				 const pj_sockaddr_t *rem_addr,
 				 int addr_len,
 				 void *token,
-				 void (*callback)(pjsip_transport*,
-						  void *token,
-						  pj_ssize_t))
+				 pjsip_transport_callback callback)
 {
     struct udp_transport *tp = (struct udp_transport*)transport;
     pj_ssize_t size;
diff --git a/pjsip/src/pjsip/sip_util.c b/pjsip/src/pjsip/sip_util.c
index f0292be..a611fe9 100644
--- a/pjsip/src/pjsip/sip_util.c
+++ b/pjsip/src/pjsip/sip_util.c
@@ -1005,9 +1005,7 @@
 pjsip_endpt_send_request_stateless(pjsip_endpoint *endpt, 
 				   pjsip_tx_data *tdata,
 				   void *token,
-				   void (*cb)(pjsip_send_state*,
-					      pj_ssize_t sent,
-					      pj_bool_t *cont))
+				   pjsip_endpt_callback cb)
 {
     pjsip_host_info dest_info;
     pjsip_send_state *stateless_data;
@@ -1226,9 +1224,7 @@
 					       pjsip_response_addr *res_addr,
 					       pjsip_tx_data *tdata,
 					       void *token,
-					       void (*cb)(pjsip_send_state*,
-							  pj_ssize_t sent,
-							  pj_bool_t *cont))
+					       pjsip_endpt_callback cb)
 {
     /* Determine which transports and addresses to send the response,
      * based on Section 18.2.2 of RFC 3261.
@@ -1277,9 +1273,7 @@
 					        pjsip_rx_data *rdata,
 					        pjsip_tx_data *tdata,
 						void *token,
-						void (*cb)(pjsip_send_state*,
-							   pj_ssize_t sent,
-							   pj_bool_t *cont))
+						pjsip_endpt_callback cb)
 {
     pjsip_response_addr res_addr;
     pj_status_t status;
diff --git a/pjsip/src/pjsip/sip_util_statefull.c b/pjsip/src/pjsip/sip_util_statefull.c
index 129a13c..94ab447 100644
--- a/pjsip/src/pjsip/sip_util_statefull.c
+++ b/pjsip/src/pjsip/sip_util_statefull.c
@@ -83,7 +83,7 @@
 					       pjsip_tx_data *tdata,
 					       pj_int32_t timeout,
 					       void *token,
-					       void (*cb)(void*,pjsip_event*))
+					       pjsip_endpt_send_callback cb)
 {
     pjsip_transaction *tsx;
     struct tsx_data *tsx_data;
