diff --git a/lib/json-20090723.jar b/lib/json-20090723.jar
deleted file mode 100644
index b7b2cb07dca3e9b3ce3c76d43c0ebed3d1361280..0000000000000000000000000000000000000000
Binary files a/lib/json-20090723.jar and /dev/null differ
diff --git a/lib/json-simple-1.1.1.jar b/lib/json-simple-1.1.1.jar
new file mode 100644
index 0000000000000000000000000000000000000000..66347a6c86b7d6442358ca7643e4dc484fb01866
Binary files /dev/null and b/lib/json-simple-1.1.1.jar differ
diff --git a/src/org/jitsi/impl/neomedia/MediaServiceImpl.java b/src/org/jitsi/impl/neomedia/MediaServiceImpl.java
index 0108568bdddc0b75df4746f854158680bca43413..0a8592201967cb9628664ff7bfd976a088aa8222 100644
--- a/src/org/jitsi/impl/neomedia/MediaServiceImpl.java
+++ b/src/org/jitsi/impl/neomedia/MediaServiceImpl.java
@@ -34,7 +34,7 @@
 import org.jitsi.util.*;
 import org.jitsi.util.event.*;
 import org.jitsi.util.swing.*;
-import org.json.*;
+import org.json.simple.*;
 
 import com.sun.media.util.*;
 
@@ -906,29 +906,31 @@ public Map<MediaFormat, Byte> getDynamicPayloadTypePreferences()
                     {
                         try
                         {
-                            JSONObject json = new JSONObject(source);
+                            JSONObject json = (JSONObject)JSONValue
+                                .parseWithException(source);
                             String encoding
-                                = json.getString(
+                                = (String)json.get(
                                         MediaFormatImpl.ENCODING_PNAME);
-                            int clockRate
-                                = json.getInt(MediaFormatImpl.CLOCK_RATE_PNAME);
+                            long clockRate = (Long)json.get(
+                                MediaFormatImpl.CLOCK_RATE_PNAME);
                             Map<String, String> fmtps
                                 = new HashMap<String, String>();
 
-                            if (json.has(
+                            if (json.containsKey(
                                     MediaFormatImpl.FORMAT_PARAMETERS_PNAME))
                             {
                                 JSONObject jsonFmtps
-                                    = json.getJSONObject(
+                                    = (JSONObject)json.get(
                                             MediaFormatImpl
                                                 .FORMAT_PARAMETERS_PNAME);
-                                Iterator<?> jsonFmtpsIter = jsonFmtps.keys();
+                                Iterator<?> jsonFmtpsIter
+                                    = jsonFmtps.keySet().iterator();
 
                                 while (jsonFmtpsIter.hasNext())
                                 {
                                     String key
                                         = jsonFmtpsIter.next().toString();
-                                    String value = jsonFmtps.getString(key);
+                                    String value = (String)jsonFmtps.get(key);
 
                                     fmtps.put(key, value);
                                 }
@@ -946,7 +948,7 @@ public Map<MediaFormat, Byte> getDynamicPayloadTypePreferences()
                                         dynamicPayloadTypePreference);
                             }
                         }
-                        catch (JSONException jsone)
+                        catch (Throwable jsone)
                         {
                             logger.warn(
                                     "Ignoring dynamic payload type preference"