diff --git a/lib/fontbox-2.0.3.jar b/lib/fontbox-2.0.4.jar
similarity index 95%
rename from lib/fontbox-2.0.3.jar
rename to lib/fontbox-2.0.4.jar
index 20ef202..43cf6b1 100644
--- a/lib/fontbox-2.0.3.jar
+++ b/lib/fontbox-2.0.4.jar
Binary files differ
diff --git a/lib/pdfbox-2.0.3.jar b/lib/pdfbox-2.0.4.jar
similarity index 80%
rename from lib/pdfbox-2.0.3.jar
rename to lib/pdfbox-2.0.4.jar
index b7bc485..4f675dd 100644
--- a/lib/pdfbox-2.0.3.jar
+++ b/lib/pdfbox-2.0.4.jar
Binary files differ
diff --git a/test/java/org/apache/fop/render/pdf/PDFBoxAdapterTestCase.java b/test/java/org/apache/fop/render/pdf/PDFBoxAdapterTestCase.java
index dd0b629..0b953fb 100644
--- a/test/java/org/apache/fop/render/pdf/PDFBoxAdapterTestCase.java
+++ b/test/java/org/apache/fop/render/pdf/PDFBoxAdapterTestCase.java
@@ -535,10 +535,18 @@
         Assert.assertEquals(item.getClass(), Integer.class);
         Assert.assertEquals(pdfCache.size(), 11);
 
-        item = objectCachePerFile.values().iterator().next();
-        Assert.assertEquals(item.getClass(), PDFDictionary.class);
-        item = objectCachePerFile.keySet().iterator().next();
-        Assert.assertEquals(item.getClass(), String.class);
+        int pdfDictionary = 0;
+        int strings = 0;
+        for (Map.Entry<Object, Object> o : objectCachePerFile.entrySet()) {
+            if (o.getValue().getClass().equals(PDFDictionary.class)) {
+                pdfDictionary++;
+            }
+            if (o.getKey() instanceof String) {
+                strings++;
+            }
+        }
+        Assert.assertEquals(pdfDictionary, 26);
+        Assert.assertEquals(strings, 34);
         Assert.assertEquals(objectCachePerFile.size(), 45);
     }
 }
