diff --git a/channels/h323/ast_h323.cpp b/channels/h323/ast_h323.cpp
index 0e8d86d95462563a43d7ddd1d47085b5623217f3..a827452abe8dacad034f35a72a2b2f233b723ed8 100755
--- a/channels/h323/ast_h323.cpp
+++ b/channels/h323/ast_h323.cpp
@@ -206,11 +206,8 @@ int MyH323EndPoint::MakeCall(const PString & dest, PString & token,
 	*callReference = connection->GetCallReference();
 	
 	if (strlen(callerid)) {
-		cout << "Setting callerid: [" << callerid << "]" << endl;
 		connection->SetLocalPartyName(PString(callerid));
-	} else {
-		cout << "Callerid NOT SET!" << endl; 
-	}
+	} 
 	connection->Unlock(); 	
 
 	if (h323debug) {
diff --git a/channels/h323/chan_h323.c b/channels/h323/chan_h323.c
index 017a164361286e8c0e393a74a3ea93ee1a09ae9f..29c139647194a648a6d1ca30fb7cff4d3b812b29 100755
--- a/channels/h323/chan_h323.c
+++ b/channels/h323/chan_h323.c
@@ -406,7 +406,13 @@ static int oh323_call(struct ast_channel *c, char *dest, int timeout)
 
 	/* Copy callerid, if there is any */
 	if (strlen(c->callerid)) {
-		p->calloptions.callerid = strdup(c->callerid);
+		char *tmp = strchr(c->callerid, '"');
+		if (tmp) {
+			p->calloptions.callerid = malloc(sizeof(c->callerid+20)); // evil
+			sprintf(p->calloptions.callerid, "\"Unknown Name\" <%s>", c->callerid);
+		} else {
+			p->calloptions.callerid = strdup(c->callerid);
+		}
 	}
 
 	res = h323_make_call(called_addr, &(p->cd), p->calloptions);