diff -Bbur asterisk-1.4.21.2.orig/main/callerid.c asterisk-1.4.21.2/main/callerid.c
--- asterisk-1.4.21.2.orig/main/callerid.c	2010-08-02 18:26:49.000000000 +1000
+++ asterisk-1.4.21.2/main/callerid.c	2010-08-02 18:31:30.000000000 +1000
@@ -220,11 +220,16 @@
 void callerid_get(struct callerid_state *cid, char **name, char **number, int *flags)
 {
 	*flags = cid->flags;
-	if (cid->flags & (CID_UNKNOWN_NAME | CID_PRIVATE_NAME))
+
+    if (cid->flags & CID_PRIVATE_NAME)
+        *name = "Private";
+    else if (cid->flags & CID_UNKNOWN_NAME)
 		*name = NULL;
 	else
 		*name = cid->name;
-	if (cid->flags & (CID_UNKNOWN_NUMBER | CID_PRIVATE_NUMBER))
+	if (cid->flags & CID_PRIVATE_NUMBER)
+        *number = "Private";
+	else if (cid->flags & CID_UNKNOWN_NUMBER)
 		*number = NULL;
 	else
 		*number = cid->number;
