diff --git a/pjsip/src/pjsip-ua/sip_inv.c b/pjsip/src/pjsip-ua/sip_inv.c
index f6a6a24..e08e10d 100644
--- a/pjsip/src/pjsip-ua/sip_inv.c
+++ b/pjsip/src/pjsip-ua/sip_inv.c
@@ -169,7 +169,7 @@
 		   const pj_str_t *cause_text)
 {
     if (cause_code > inv->cause) {
-	inv->cause = cause_code;
+	inv->cause = (pjsip_status_code) cause_code;
 	if (cause_text)
 	    pj_strdup(inv->pool, &inv->cause_text, cause_text);
 	else if (cause_code/100 == 2)
@@ -461,7 +461,7 @@
     inv->dlg = dlg;
     inv->options = options;
     inv->notify = PJ_TRUE;
-    inv->cause = 0;
+    inv->cause = (pjsip_status_code) 0;
 
     /* Object name will use the same dialog pointer. */
     pj_ansi_snprintf(inv->obj_name, PJ_MAX_OBJ_NAME, "inv%p", dlg);
@@ -883,7 +883,7 @@
     inv->dlg = dlg;
     inv->options = options;
     inv->notify = PJ_TRUE;
-    inv->cause = 0;
+    inv->cause = (pjsip_status_code) 0;
 
     /* Object name will use the same dialog pointer. */
     pj_ansi_snprintf(inv->obj_name, PJ_MAX_OBJ_NAME, "inv%p", dlg);
diff --git a/pjsip/src/pjsip-ua/sip_xfer.c b/pjsip/src/pjsip-ua/sip_xfer.c
index 798b04d..f772f78 100644
--- a/pjsip/src/pjsip-ua/sip_xfer.c
+++ b/pjsip/src/pjsip-ua/sip_xfer.c
@@ -58,7 +58,7 @@
 };
 
 const pjsip_method pjsip_refer_method = {
-    PJSIP_REFER_METHOD,
+    (pjsip_method_e) PJSIP_REFER_METHOD,
     { "REFER", 5}
 };
 
diff --git a/pjsip/src/pjsip/sip_transport_udp.c b/pjsip/src/pjsip/sip_transport_udp.c
index 661d49f..42e001d 100644
--- a/pjsip/src/pjsip/sip_transport_udp.c
+++ b/pjsip/src/pjsip/sip_transport_udp.c
@@ -16,7 +16,7 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
  */
-#include <pjsip/sip_transport.h>
+#include <pjsip/sip_transport_udp.h>
 #include <pjsip/sip_endpoint.h>
 #include <pjsip/sip_errno.h>
 #include <pj/addr_resolv.h>
diff --git a/pjsip/src/pjsua-lib/pjsua_acc.c b/pjsip/src/pjsua-lib/pjsua_acc.c
index b2b6374..01be07f 100644
--- a/pjsip/src/pjsua-lib/pjsua_acc.c
+++ b/pjsip/src/pjsua-lib/pjsua_acc.c
@@ -682,22 +682,22 @@
     info->online_status = acc->online_status;
     
     if (acc->reg_last_err) {
-	info->status = acc->reg_last_err;
+	info->status = (pjsip_status_code) acc->reg_last_err;
 	pj_strerror(acc->reg_last_err, info->buf_, sizeof(info->buf_));
 	info->status_text = pj_str(info->buf_);
     } else if (acc->reg_last_code) {
 	if (info->has_registration) {
-	    info->status = acc->reg_last_code;
+	    info->status = (pjsip_status_code) acc->reg_last_code;
 	    info->status_text = *pjsip_get_status_text(acc->reg_last_code);
 	} else {
-	    info->status = 0;
+	    info->status = (pjsip_status_code) 0;
 	    info->status_text = pj_str("not registered");
 	}
     } else if (acc->cfg.reg_uri.slen) {
-	info->status = 100;
+	info->status = PJSIP_SC_TRYING;
 	info->status_text = pj_str("In Progress");
     } else {
-	info->status = 0;
+	info->status = (pjsip_status_code) 0;
 	info->status_text = pj_str("does not register");
     }
     
diff --git a/pjsip/src/pjsua-lib/pjsua_call.c b/pjsip/src/pjsua-lib/pjsua_call.c
index c86a756..47dbaa7 100644
--- a/pjsip/src/pjsua-lib/pjsua_call.c
+++ b/pjsip/src/pjsua-lib/pjsua_call.c
@@ -84,7 +84,7 @@
     call->user_data = NULL;
     call->session = NULL;
     call->xfer_sub = NULL;
-    call->last_code = 0;
+    call->last_code = (pjsip_status_code) 0;
     call->conf_slot = PJSUA_INVALID_ID;
     call->last_text.ptr = call->last_text_buf_;
     call->last_text.slen = 0;
@@ -1946,7 +1946,8 @@
 	case PJSIP_INV_STATE_CONNECTING:
 	    if (call->res_time.sec == 0)
 		pj_gettimeofday(&call->res_time);
-	    call->last_code = e->body.tsx_state.tsx->status_code;
+	    call->last_code = (pjsip_status_code) 
+	    		      e->body.tsx_state.tsx->status_code;
 	    pj_strncpy(&call->last_text, 
 		       &e->body.tsx_state.tsx->status_text,
 		       sizeof(call->last_text_buf_));
@@ -1959,14 +1960,16 @@
 	    if (call->res_time.sec == 0)
 		pj_gettimeofday(&call->res_time);
 	    if (e->body.tsx_state.tsx->status_code > call->last_code) {
-		call->last_code = e->body.tsx_state.tsx->status_code;
+		call->last_code = (pjsip_status_code) 
+				  e->body.tsx_state.tsx->status_code;
 		pj_strncpy(&call->last_text, 
 			   &e->body.tsx_state.tsx->status_text,
 			   sizeof(call->last_text_buf_));
 	    }
 	    break;
 	default:
-	    call->last_code = e->body.tsx_state.tsx->status_code;
+	    call->last_code = (pjsip_status_code) 
+	    		      e->body.tsx_state.tsx->status_code;
 	    pj_strncpy(&call->last_text, 
 		       &e->body.tsx_state.tsx->status_text,
 		       sizeof(call->last_text_buf_));
@@ -2534,7 +2537,7 @@
 							&code);
 
     if (code < 200)
-	code = 200;
+	code = PJSIP_SC_OK;
     if (code >= 300) {
 	/* Application rejects call transfer request */
 	pjsip_dlg_respond( inv->dlg, rdata, code, NULL, NULL, NULL);
@@ -2775,7 +2778,8 @@
 						    &im_data->to,
 						    &im_data->body,
 						    im_data->user_data,
-						    tsx->status_code,
+						    (pjsip_status_code)
+						    	tsx->status_code,
 						    &tsx->status_text);
 	    }
 	}
diff --git a/pjsip/src/pjsua-lib/pjsua_im.c b/pjsip/src/pjsua-lib/pjsua_im.c
index aa56e34..f9f945e 100644
--- a/pjsip/src/pjsua-lib/pjsua_im.c
+++ b/pjsip/src/pjsua-lib/pjsua_im.c
@@ -35,7 +35,7 @@
 
 const pjsip_method pjsip_message_method =
 {
-    PJSIP_MESSAGE_METHOD,
+    (pjsip_method_e) PJSIP_MESSAGE_METHOD,
     { "MESSAGE", 7 }
 };
 
@@ -340,7 +340,8 @@
 					        &im_data->to,
 						&im_data->body,
 						im_data->user_data,
-						tsx->status_code,
+						(pjsip_status_code) 
+						    tsx->status_code,
 						&tsx->status_text);
     }
 }
diff --git a/pjsip/src/pjsua-lib/pjsua_media.c b/pjsip/src/pjsua-lib/pjsua_media.c
index 80e4383..bd306ae 100644
--- a/pjsip/src/pjsua-lib/pjsua_media.c
+++ b/pjsip/src/pjsua-lib/pjsua_media.c
@@ -38,7 +38,7 @@
  */
 pj_status_t pjsua_media_subsys_init(const pjsua_media_config *cfg)
 {
-    pj_str_t codec_id;
+    pj_str_t codec_id = {NULL, 0};
     unsigned opt;
     pj_status_t status;
 
