diff --git a/pjlib/src/pj/ioqueue_select.c b/pjlib/src/pj/ioqueue_select.c
index 2cdb3eb..8d24ae8 100644
--- a/pjlib/src/pj/ioqueue_select.c
+++ b/pjlib/src/pj/ioqueue_select.c
@@ -315,7 +315,12 @@
                                               pj_ioqueue_key_t **p_key)
 {
     pj_ioqueue_key_t *key = NULL;
+#if defined(PJ_WIN32) && PJ_WIN32!=0 || \
+    defined(PJ_WIN32_WINCE) && PJ_WIN32_WINCE!=0
+    u_long value;
+#else
     pj_uint32_t value;
+#endif
     pj_status_t rc = PJ_SUCCESS;
     
     PJ_ASSERT_RETURN(pool && ioqueue && sock != PJ_INVALID_SOCKET &&
@@ -354,7 +359,7 @@
     value = 1;
 #if defined(PJ_WIN32) && PJ_WIN32!=0 || \
     defined(PJ_WIN32_WINCE) && PJ_WIN32_WINCE!=0
-    if (ioctlsocket(sock, FIONBIO, (u_long*)&value)) {
+    if (ioctlsocket(sock, FIONBIO, &value)) {
 #else
     if (ioctl(sock, FIONBIO, &value)) {
 #endif
diff --git a/pjsip-apps/src/samples/simpleua.c b/pjsip-apps/src/samples/simpleua.c
index d7b6508..8c81e7d 100644
--- a/pjsip-apps/src/samples/simpleua.c
+++ b/pjsip-apps/src/samples/simpleua.c
@@ -253,8 +253,10 @@
     /* 
      * Add PCMA/PCMU codec to the media endpoint. 
      */
+#if defined(PJMEDIA_HAS_G711_CODEC) && PJMEDIA_HAS_G711_CODEC!=0
     status = pjmedia_codec_g711_init(g_med_endpt);
     PJ_ASSERT_RETURN(status == PJ_SUCCESS, 1);
+#endif
 
     
     /* 
diff --git a/pjsip-apps/src/samples/siprtp.c b/pjsip-apps/src/samples/siprtp.c
index 208ac84..6de2fc8 100644
--- a/pjsip-apps/src/samples/siprtp.c
+++ b/pjsip-apps/src/samples/siprtp.c
@@ -406,7 +406,9 @@
 
 
     /* Must register codecs to be supported */
+#if defined(PJMEDIA_HAS_G711_CODEC) && PJMEDIA_HAS_G711_CODEC!=0
     pjmedia_codec_g711_init(app.med_endpt);
+#endif
 
     /* RTP port counter */
     rtp_port = (pj_uint16_t)(app.rtp_start_port & 0xFFFE);
diff --git a/pjsip-apps/src/samples/streamutil.c b/pjsip-apps/src/samples/streamutil.c
index cdeed5d..75f181d 100644
--- a/pjsip-apps/src/samples/streamutil.c
+++ b/pjsip-apps/src/samples/streamutil.c
@@ -86,6 +86,9 @@
 {
     pj_status_t status;
 
+    /* To suppress warning about unused var when all codecs are disabled */
+    PJ_UNUSED_ARG(status);
+
 #if defined(PJMEDIA_HAS_G711_CODEC) && PJMEDIA_HAS_G711_CODEC!=0
     status = pjmedia_codec_g711_init(med_endpt);
     PJ_ASSERT_RETURN(status == PJ_SUCCESS, status);
diff --git a/pjsip/include/pjsua-lib/pjsua.h b/pjsip/include/pjsua-lib/pjsua.h
index 0d7a645..efa21b3 100644
--- a/pjsip/include/pjsua-lib/pjsua.h
+++ b/pjsip/include/pjsua-lib/pjsua.h
@@ -2187,7 +2187,7 @@
     PJSUA_BUDDY_STATUS_UNKNOWN,
 
     /**
-     * Buddy is known to be offline.
+     * Buddy is known to be online.
      */
     PJSUA_BUDDY_STATUS_ONLINE,
 
diff --git a/pjsip/src/pjsua-lib/pjsua_media.c b/pjsip/src/pjsua-lib/pjsua_media.c
index 374608c..c78d505 100644
--- a/pjsip/src/pjsua-lib/pjsua_media.c
+++ b/pjsip/src/pjsua-lib/pjsua_media.c
@@ -40,6 +40,9 @@
     unsigned opt;
     pj_status_t status;
 
+    /* To suppress warning about unused var when all codecs are disabled */
+    PJ_UNUSED_ARG(codec_id);
+
     /* Copy configuration */
     pj_memcpy(&pjsua_var.media_cfg, cfg, sizeof(*cfg));
 
