diff --git a/src/mod/endpoints/mod_exosip/mod_exosip.c b/src/mod/endpoints/mod_exosip/mod_exosip.c
index f70c6f7c9f..feec5e8662 100644
--- a/src/mod/endpoints/mod_exosip/mod_exosip.c
+++ b/src/mod/endpoints/mod_exosip/mod_exosip.c
@@ -323,17 +323,16 @@ static switch_status exosip_on_init(switch_core_session *session)
 			static const switch_codec_implementation *imp;
 			for (i = 0; i < num_codecs; i++) {
 				int x = 0;
-				uint32_t sps;
 
 				snprintf(tmp, sizeof(tmp), "%u", codecs[i]->ianacode);
 				sdp_message_m_payload_add(tech_pvt->local_sdp, 0, osip_strdup(tmp));
 				imp = codecs[i]->implementations;
-				sps = imp->samples_per_second;
 
 				while(NULL != imp) {
+					uint32_t sps = imp->samples_per_second;
 					/* Add to SDP config */
 					sdp_add_codec(tech_pvt->sdp_config, codecs[i]->codec_type, codecs[i]->ianacode, codecs[i]->iananame, sps, x++);
-								  
+
 					/* Add to SDP message */
 					snprintf(tmp, sizeof(tmp), "%u %s/%d", codecs[i]->ianacode, codecs[i]->iananame, sps);
 					sdp_message_a_attribute_add(tech_pvt->local_sdp, 0, "rtpmap", osip_strdup(tmp));