Index: pjproject/trunk/pjlib-util/src/pjlib-util/errno.c
===================================================================
--- pjproject/trunk/pjlib-util/src/pjlib-util/errno.c	(revision 329)
+++ pjproject/trunk/pjlib-util/src/pjlib-util/errno.c	(revision 330)
@@ -26,4 +26,5 @@
  * Message must be limited to 64 chars!
  */
+#if defined(PJ_HAS_ERROR_STRING) && PJ_HAS_ERROR_STRING!=0
 static const struct 
 {
@@ -48,5 +49,5 @@
     { PJLIB_UTIL_EINXML,	    "Invalid XML message" },
 };
-
+#endif	/* PJ_HAS_ERROR_STRING */
 
 
@@ -58,4 +59,6 @@
 {
     pj_str_t errstr;
+
+#if defined(PJ_HAS_ERROR_STRING) && (PJ_HAS_ERROR_STRING != 0)
 
     if (statcode >= PJLIB_UTIL_ERRNO_START && 
@@ -97,8 +100,11 @@
     }
 
+#endif	/* PJ_HAS_ERROR_STRING */
+
+
     /* Error not found. */
     errstr.ptr = buf;
     errstr.slen = pj_ansi_snprintf(buf, bufsize, 
-				   "Unknown error %d",
+				   "Unknown pjlib-util error %d",
 				   statcode);
 
Index: pjproject/trunk/pjlib/src/pj/errno.c
===================================================================
--- pjproject/trunk/pjlib/src/pj/errno.c	(revision 329)
+++ pjproject/trunk/pjlib/src/pj/errno.c	(revision 330)
@@ -40,4 +40,5 @@
 
 /* PJLIB's own error codes/messages */
+#if defined(PJ_HAS_ERROR_STRING) && PJ_HAS_ERROR_STRING!=0
 static const struct 
 {
@@ -63,4 +64,6 @@
     { PJ_EEOF,		"End of file" },
 };
+#endif	/* PJ_HAS_ERROR_STRING */
+
 
 /*
@@ -71,4 +74,5 @@
 static int pjlib_error(pj_status_t code, char *buf, pj_size_t size)
 {
+#if defined(PJ_HAS_ERROR_STRING) && PJ_HAS_ERROR_STRING!=0
     unsigned i;
 
@@ -82,10 +86,7 @@
         }
     }
+#endif
 
-    *buf++ = '?';
-    *buf++ = '?';
-    *buf++ = '?';
-    *buf++ = '\0';
-    return 3;
+    return pj_ansi_snprintf( buf, size, "Unknown pjlib error %d", code);
 }
 
Index: pjproject/trunk/pjlib/src/pj/os_error_win32.c
===================================================================
--- pjproject/trunk/pjlib/src/pj/os_error_win32.c	(revision 329)
+++ pjproject/trunk/pjlib/src/pj/os_error_win32.c	(revision 330)
@@ -34,4 +34,6 @@
  * From Apache's APR:
  */
+#if defined(PJ_HAS_ERROR_STRING) && (PJ_HAS_ERROR_STRING!=0)
+
 static const struct {
     pj_os_err_type code;
@@ -89,4 +91,7 @@
     {0,                  NULL}
 };
+
+#endif	/* PJ_HAS_ERROR_STRING */
+
 
 
@@ -156,4 +161,6 @@
 
     if (!len) {
+
+#if defined(PJ_HAS_ERROR_STRING) && (PJ_HAS_ERROR_STRING!=0)
 	int i;
         for (i = 0; gaErrorList[i].msg; ++i) {
@@ -168,4 +175,5 @@
             }
         }
+#endif	/* PJ_HAS_ERROR_STRING */
 
     } else {
Index: pjproject/trunk/pjmedia/src/pjmedia/errno.c
===================================================================
--- pjproject/trunk/pjmedia/src/pjmedia/errno.c	(revision 329)
+++ pjproject/trunk/pjmedia/src/pjmedia/errno.c	(revision 330)
@@ -27,4 +27,7 @@
  * Message must be limited to 64 chars!
  */
+
+#if defined(PJ_HAS_ERROR_STRING) && (PJ_HAS_ERROR_STRING != 0)
+
 static const struct 
 {
@@ -122,4 +125,6 @@
 };
 
+#endif	/* PJ_HAS_ERROR_STRING */
+
 
 
@@ -131,4 +136,6 @@
 {
     pj_str_t errstr;
+
+#if defined(PJ_HAS_ERROR_STRING) && (PJ_HAS_ERROR_STRING != 0)
 
     /* See if the error comes from PortAudio. */
@@ -185,8 +192,10 @@
     }
 
+#endif	/* PJ_HAS_ERROR_STRING */
+
     /* Error not found. */
     errstr.ptr = buf;
     errstr.slen = pj_ansi_snprintf(buf, bufsize, 
-				   "Unknown error %d",
+				   "Unknown pjmedia error %d",
 				   statcode);
 
Index: pjproject/trunk/pjsip/src/pjsip-simple/errno.c
===================================================================
--- pjproject/trunk/pjsip/src/pjsip-simple/errno.c	(revision 329)
+++ pjproject/trunk/pjsip/src/pjsip-simple/errno.c	(revision 330)
@@ -24,4 +24,7 @@
  * Message must be limited to 64 chars!
  */
+
+#if defined(PJ_HAS_ERROR_STRING) && (PJ_HAS_ERROR_STRING != 0)
+
 static const struct 
 {
@@ -47,4 +50,6 @@
 
 
+#endif	/* PJ_HAS_ERROR_STRING */
+
 
 /*
@@ -55,4 +60,6 @@
 {
     pj_str_t errstr;
+
+#if defined(PJ_HAS_ERROR_STRING) && (PJ_HAS_ERROR_STRING != 0)
 
     if (statcode >= PJSIP_SIMPLE_ERRNO_START && 
@@ -94,8 +101,11 @@
     }
 
+#endif	/* PJ_HAS_ERROR_STRING */
+
+
     /* Error not found. */
     errstr.ptr = buf;
     errstr.slen = pj_ansi_snprintf(buf, bufsize, 
-				   "Unknown error %d",
+				   "Unknown pjsip-simple error %d",
  				   statcode);
 
Index: pjproject/trunk/pjsip/src/pjsip/sip_errno.c
===================================================================
--- pjproject/trunk/pjsip/src/pjsip/sip_errno.c	(revision 329)
+++ pjproject/trunk/pjsip/src/pjsip/sip_errno.c	(revision 330)
@@ -25,4 +25,7 @@
  * MUST KEEP THIS ARRAY SORTED!!
  */
+
+#if defined(PJ_HAS_ERROR_STRING) && (PJ_HAS_ERROR_STRING != 0)
+
 static const struct 
 {
@@ -92,4 +95,7 @@
 
 
+#endif	/* PJ_HAS_ERROR_STRING */
+
+
 /*
  * pjsip_strerror()
@@ -99,4 +105,6 @@
 {
     pj_str_t errstr;
+
+#if defined(PJ_HAS_ERROR_STRING) && (PJ_HAS_ERROR_STRING != 0)
 
     if (statcode >= PJSIP_ERRNO_START && statcode < PJSIP_ERRNO_START+800) 
@@ -145,18 +153,16 @@
 	    return errstr;
 
-	} else {
-	    /* Error not found. */
-	    errstr.ptr = buf;
-	    errstr.slen = pj_ansi_snprintf(buf, bufsize, 
-					   "Unknown error %d",
-					   statcode);
+	} 
+    }
 
-	    return errstr;
-	}
-    }
-    else {
-	/* Not our code. Give it to PJLIB. */
-	return pj_strerror(statcode, buf, bufsize);
-    }
+#endif	/* PJ_HAS_ERROR_STRING */
+
+    /* Error not found. */
+    errstr.ptr = buf;
+    errstr.slen = pj_ansi_snprintf(buf, bufsize, 
+				   "Unknown pjsip error %d",
+				   statcode);
+
+    return errstr;
 
 }
