* #31884: working codec reordering
diff --git a/src/org/sflphone/service/SipService.java b/src/org/sflphone/service/SipService.java
index 6115dfb..eae66ee 100644
--- a/src/org/sflphone/service/SipService.java
+++ b/src/org/sflphone/service/SipService.java
@@ -1041,22 +1041,39 @@
                     Log.i(TAG, "SipService.getAudioCodecList() thread running...");
                     ArrayList<Codec> results = new ArrayList<Codec>();
 
-                    IntVect payloads = configurationManagerJNI.getAudioCodecList();
-
-                    for (int i = 0; i < payloads.size(); ++i) {
-                        results.add(new Codec(payloads.get(i), configurationManagerJNI.getAudioCodecDetails(payloads.get(i)), false));
-                    }
-
-
                     IntVect active_payloads = configurationManagerJNI.getActiveAudioCodecList(accountID);
                     for (int i = 0; i < active_payloads.size(); ++i) {
 
-                        for(Codec co : results){
-                            if(co.getPayload().toString().contentEquals(String.valueOf(active_payloads.get(i))))
-                                co.setEnabled(true);
-                        }
+                        results.add(new Codec(active_payloads.get(i), configurationManagerJNI.getAudioCodecDetails(active_payloads.get(i)), true));
+                        
+                        if (results.get(i).getName().length() == 0)
+                            results.remove(i);
                     }
 
+                    // if (results.get(active_payloads.get(i)) != null) {
+                    // results.get(active_payloads.get(i)).setEnabled(true);
+
+                    IntVect payloads = configurationManagerJNI.getAudioCodecList();
+
+                    for (int i = 0; i < payloads.size(); ++i) {
+                        boolean isActive = false;
+                        for (Codec co : results) {
+                            if (co.getPayload().toString().contentEquals(String.valueOf(payloads.get(i))))
+                                isActive = true;
+
+                        }
+                        if (isActive)
+                            continue;
+                        else
+                            results.add(new Codec(payloads.get(i), configurationManagerJNI.getAudioCodecDetails(payloads.get(i)), false));
+
+                    }
+
+                    // if (!results.containsKey(payloads.get(i))) {
+                    // results.put(payloads.get(i), new Codec(payloads.get(i), configurationManagerJNI.getAudioCodecDetails(payloads.get(i)), false));
+                    // Log.i(TAG, "Other, Adding:" + results.get((payloads.get(i))).getName());
+                    // }
+
                     return results;
                 }
             }