diff --git a/pjsip/src/pjsip-ua/sip_reg.c b/pjsip/src/pjsip-ua/sip_reg.c
index d6f8572..ed15dfb 100644
--- a/pjsip/src/pjsip-ua/sip_reg.c
+++ b/pjsip/src/pjsip-ua/sip_reg.c
@@ -568,7 +568,7 @@
 
     /* Add Contact headers. */
     hdr = (pjsip_hdr*)regc->contact_hdr_list.next;
-    while (hdr != (pjsip_hdr*)&regc->contact_hdr_list) {
+    while ((void*)hdr != (void*)&regc->contact_hdr_list) {
 	pjsip_msg_add_hdr(msg, (pjsip_hdr*)
 			       pjsip_hdr_shallow_clone(tdata->pool, hdr));
 	hdr = hdr->next;
diff --git a/pjsip/src/test-pjsip/regc_test.c b/pjsip/src/test-pjsip/regc_test.c
index a962973..95cc5f9 100644
--- a/pjsip/src/test-pjsip/regc_test.c
+++ b/pjsip/src/test-pjsip/regc_test.c
@@ -580,7 +580,7 @@
 	ret = -630;
 	goto on_return;
     }
-    if (h1->next == (pjsip_contact_hdr*)&tdata->msg->hdr)
+    if ((void*)h1->next == (void*)&tdata->msg->hdr)
 	h2 = NULL;
     else
 	h2 = (pjsip_contact_hdr*) 
@@ -590,7 +590,7 @@
 	goto on_return;
     }
     /* must not have other Contact header */
-    if (h2->next != (pjsip_contact_hdr*)&tdata->msg->hdr &&
+    if ((void*)h2->next != (void*)&tdata->msg->hdr &&
 	pjsip_msg_find_hdr(tdata->msg, PJSIP_H_CONTACT, h2->next) != NULL)
     {
 	ret = -645;
@@ -660,7 +660,7 @@
 	    ret = -730;
 	    goto on_return;
 	}
-	if (h1->next == (pjsip_contact_hdr*)&tdata->msg->hdr)
+	if ((void*)h1->next == (void*)&tdata->msg->hdr)
 	    h2 = NULL;
 	else
 	    h2 = (pjsip_contact_hdr*) 
@@ -670,7 +670,7 @@
 	    goto on_return;
 	}
 	/* must not have other Contact header */
-	if (h2->next != (pjsip_contact_hdr*)&tdata->msg->hdr &&
+	if ((void*)h2->next != (void*)&tdata->msg->hdr &&
 	    pjsip_msg_find_hdr(tdata->msg, PJSIP_H_CONTACT, h2->next) != NULL)
 	{
 	    ret = -745;
