diff --git a/coreapi/offeranswer.c b/coreapi/offeranswer.c
index efd44552de674d90c13c011cec046ec40c954b5a..22901242aabbdb6465859fb2eb97c138a0726f9b 100644
--- a/coreapi/offeranswer.c
+++ b/coreapi/offeranswer.c
@@ -29,7 +29,10 @@ static PayloadType * find_payload_type_best_match(const MSList *l, const Payload
 
 	for (elem=l;elem!=NULL;elem=elem->next){
 		pt=(PayloadType*)elem->data;
-		if (strcasecmp(pt->mime_type,refpt->mime_type)==0 && pt->clock_rate==refpt->clock_rate){
+		/* the compare between G729 and G729A is for some stupid uncompliant phone*/
+		if (strcasecmp(pt->mime_type,refpt->mime_type)==0  ||
+		    ((strcasecmp(pt->mime_type, "G729") == 0 && strcasecmp(refpt->mime_type, "G729A") == 0 ))
+			&& pt->clock_rate==refpt->clock_rate){
 			candidate=pt;
 			/*good candidate, check fmtp for H264 */
 			if (strcasecmp(pt->mime_type,"H264")==0){