diff --git a/pjsip/src/pjsua-lib/pjsua_acc.c b/pjsip/src/pjsua-lib/pjsua_acc.c
index 2258cdd..77d8d2b 100644
--- a/pjsip/src/pjsua-lib/pjsua_acc.c
+++ b/pjsip/src/pjsua-lib/pjsua_acc.c
@@ -519,8 +519,11 @@
     if (via->rport_param < 1) {
 	/* Remote doesn't support rport */
 	rport = via->sent_by.port;
-	if (rport==0)
-	    rport = pjsip_transport_get_default_port_for_type(tp->key.type);
+	if (rport==0) {
+	    pjsip_transport_type_e tp_type;
+	    tp_type = (pjsip_transport_type_e) tp->key.type;
+	    rport = pjsip_transport_get_default_port_for_type(tp_type);
+	}
     } else
 	rport = via->rport_param;
 
@@ -534,10 +537,13 @@
     uri = (pjsip_sip_uri*)
 	  pjsip_parse_uri(pool, acc->contact.ptr, acc->contact.slen, 0);
     pj_assert(uri != NULL);
-    uri = pjsip_uri_get_uri(uri);
+    uri = (pjsip_sip_uri*) pjsip_uri_get_uri(uri);
 
-    if (uri->port == 0)
-	uri->port = pjsip_transport_get_default_port_for_type(tp->key.type);
+    if (uri->port == 0) {
+	pjsip_transport_type_e tp_type;
+	tp_type = (pjsip_transport_type_e) tp->key.type;
+	uri->port = pjsip_transport_get_default_port_for_type(tp_type);
+    }
 
     if (uri->port == rport &&
 	pj_stricmp(&uri->host, via_addr)==0)
@@ -572,7 +578,7 @@
 	char *tmp;
 	int len;
 
-	tmp = pj_pool_alloc(pool, PJSIP_MAX_URL_SIZE);
+	tmp = (char*) pj_pool_alloc(pool, PJSIP_MAX_URL_SIZE);
 	len = pj_ansi_snprintf(tmp, PJSIP_MAX_URL_SIZE,
 			       "<sip:%.*s@%.*s:%d;transport=%s>",
 			       (int)acc->user_part.slen,
diff --git a/pjsip/src/pjsua-lib/pjsua_call.c b/pjsip/src/pjsua-lib/pjsua_call.c
index 9e88a36..cfbe30b 100644
--- a/pjsip/src/pjsua-lib/pjsua_call.c
+++ b/pjsip/src/pjsua-lib/pjsua_call.c
@@ -713,7 +713,7 @@
     /* Parse SDP from incoming request */
     if (rdata->msg_info.msg->body) {
 	status = pjmedia_sdp_parse(rdata->tp_info.pool, 
-				   rdata->msg_info.msg->body->data,
+				   (char*)rdata->msg_info.msg->body->data,
 				   rdata->msg_info.msg->body->len, &offer);
 	if (status != PJ_SUCCESS) {
 	    const pj_str_t reason = pj_str("Bad SDP");
