diff -rupN org/json/JSONWriter.java json/src/org/json/JSONWriter.java
--- org/json/JSONWriter.java	2010-01-30 15:13:38.000000000 -0800
+++ json/src/org/json/JSONWriter.java	2010-09-16 16:59:11.000000000 -0700
@@ -57,7 +57,7 @@ SOFTWARE.
  * @version 2008-09-22
  */
 public class JSONWriter {
-    private static final int maxdepth = 20;
+    private static final int maxdepth = 100;
 
     /**
      * The comma flag determines if a comma should be output before the next
@@ -91,12 +91,19 @@ public class JSONWriter {
     protected Writer writer;
 
     /**
-     * Make a fresh JSONWriter. It can be used to build one JSON text.
+     * Make a fresh JSONWriter at the default maximum depth. It can be used to build one JSON text.
      */
     public JSONWriter(Writer w) {
+        this(w, maxdepth);
+    }
+
+    /**
+     * Make a fresh JSONWriter at the given maximum depth. It can be used to build one JSON text.
+     */
+    public JSONWriter(Writer w, int depth) {
         this.comma = false;
         this.mode = 'i';
-        this.stack = new JSONObject[maxdepth];
+        this.stack = new JSONObject[depth];
         this.top = 0;
         this.writer = w;
     }
@@ -268,7 +275,7 @@ public class JSONWriter {
      * @throws JSONException If nesting is too deep.
      */
     private void push(JSONObject jo) throws JSONException {
-        if (this.top >= maxdepth) {
+        if (this.top >= this.stack.length) {
             throw new JSONException("Nesting too deep.");
         }
         this.stack[this.top] = jo;