diff --git a/src/test/java/org/apache/log4j/EnhancedPatternLayoutTest.java b/src/test/java/org/apache/log4j/EnhancedPatternLayoutTest.java
index 1731985..39d5767 100644
--- a/src/test/java/org/apache/log4j/EnhancedPatternLayoutTest.java
+++ b/src/test/java/org/apache/log4j/EnhancedPatternLayoutTest.java
@@ -115,7 +115,7 @@
   /**
    * Class to ensure that protected members are still available.
    */
-  private static final class DerivedPatternLayout extends EnhancedPatternLayout {
+  public static final class DerivedPatternLayout extends EnhancedPatternLayout {
     /**
      * Constructs a new instance of DerivedPatternLayout.
      */
diff --git a/src/test/java/org/apache/log4j/EnhancedPatternLayoutTestCase.java b/src/test/java/org/apache/log4j/EnhancedPatternLayoutTestCase.java
index de54f50..1290f0f 100644
--- a/src/test/java/org/apache/log4j/EnhancedPatternLayoutTestCase.java
+++ b/src/test/java/org/apache/log4j/EnhancedPatternLayoutTestCase.java
@@ -30,6 +30,7 @@
 import org.apache.log4j.util.SunReflectFilter;
 import org.apache.log4j.util.Transformer;
 import org.apache.log4j.util.MDCOrderFilter;
+import org.apache.log4j.spi.ThrowableInformation;
 
 import java.text.ParsePosition;
 import java.text.SimpleDateFormat;
@@ -563,6 +564,31 @@
     root.debug("%throwable{none}, with exception", ex);
 
 
+    layout.setConversionPattern("%m%n%throwable{0}");
+    layout.activateOptions();
+    root.debug("%throwable{0}, no exception");
+    root.debug("%throwable{0}, with exception", ex);
+
+    layout.setConversionPattern("%m%n%throwable{1}");
+    layout.activateOptions();
+    root.debug("%throwable{1}, no exception");
+    root.debug("%throwable{1}, with exception", ex);
+
+    layout.setConversionPattern("%m%n%throwable{100}");
+    layout.activateOptions();
+    root.debug("%throwable{100}, no exception");
+    root.debug("%throwable{100}, with exception", ex);
+
+    //
+    //  manufacture a pattern to get just the first two lines
+    //
+    String[] trace = new ThrowableInformation(ex).getThrowableStrRep();
+    layout.setConversionPattern("%m%n%throwable{" + (2 - trace.length) + "}");
+    layout.activateOptions();
+    root.debug("%throwable{-n}, no exception");
+    root.debug("%throwable{-n}, with exception", ex);
+
+
       Transformer.transform(
         OUTPUT_FILE, FILTERED,
         new Filter[] {
