diff -ruN b/gst/fsrtpconference/fs-rtp-codec-negotiation.c a/gst/fsrtpconference/fs-rtp-codec-negotiation.c --- b/gst/fsrtpconference/fs-rtp-codec-negotiation.c 2010-01-05 02:39:41.000000000 +0500 +++ a/gst/fsrtpconference/fs-rtp-codec-negotiation.c 2010-06-22 12:10:04.512659247 +0500 @@ -617,6 +617,10 @@ codec->ABI.ABI.ptime = codec_pref->ABI.ABI.ptime; ca->codec = codec; + /* ptime/maxptime in the CA come from the negotiation */ + ca->ptime = 0; + ca->maxptime = 0; + ca->send_profile = dup_param_value (codec_pref, SEND_PROFILE_ARG); ca->recv_profile = dup_param_value (codec_pref, RECV_PROFILE_ARG); @@ -1315,16 +1319,19 @@ while (codec_associations) { CodecAssociation *tmpca = codec_associations->data; - FsCodec *tmpcodec; - if (!codec_association_is_valid_for_sending (tmpca, FALSE)) - continue; + if (codec_association_is_valid_for_sending (tmpca, FALSE)) + { + FsCodec *tmpcodec = codec_copy_without_config (tmpca->codec); - tmpcodec = codec_copy_without_config (tmpca->codec); + tmpcodec->ABI.ABI.ptime = tmpca->ptime; + tmpcodec->ABI.ABI.maxptime = tmpca->maxptime; + + if (fs_codec_are_equal (tmpcodec, lookup_codec)) + ca = tmpca; + fs_codec_destroy (tmpcodec); + } - if (fs_codec_are_equal (tmpcodec, lookup_codec)) - ca = tmpca; - fs_codec_destroy (tmpcodec); if (ca) break;