Description: Replaces the deprecated primitive wrapper constructors
Author: Emmanuel Bourg <ebourg@apache.org>
Forwarded: not-needed
--- a/core/com/lowagie/text/Annotation.java
+++ b/core/com/lowagie/text/Annotation.java
@@ -338,7 +338,7 @@
 		this(llx, lly, urx, ury);
 		annotationtype = FILE_PAGE;
 		annotationAttributes.put(FILE, file);
-		annotationAttributes.put(PAGE, new Integer(page));
+		annotationAttributes.put(PAGE, Integer.valueOf(page));
 	}
 
 	/**
@@ -358,7 +358,7 @@
 	public Annotation(float llx, float lly, float urx, float ury, int named) {
 		this(llx, lly, urx, ury);
 		annotationtype = NAMED_DEST;
-		annotationAttributes.put(NAMED, new Integer(named));
+		annotationAttributes.put(NAMED, Integer.valueOf(named));
 	}
 
 	/**
--- a/core/com/lowagie/text/Chapter.java
+++ b/core/com/lowagie/text/Chapter.java
@@ -86,7 +86,7 @@
     public Chapter(int number) {
         super(null, 1);
         numbers = new ArrayList();
-        numbers.add(new Integer(number));
+        numbers.add(Integer.valueOf(number));
         triggerNewPage = true;
     }
 	
@@ -100,7 +100,7 @@
     public Chapter(Paragraph title, int number) {
         super(title, 1);
         numbers = new ArrayList();
-        numbers.add(new Integer(number));
+        numbers.add(Integer.valueOf(number));
         triggerNewPage = true;
     }
     
--- a/core/com/lowagie/text/Chunk.java
+++ b/core/com/lowagie/text/Chunk.java
@@ -199,8 +199,8 @@
 		this(OBJECT_REPLACEMENT_CHARACTER, new Font());
 		Image copyImage = Image.getInstance(image);
 		copyImage.setAbsolutePosition(Float.NaN, Float.NaN);
-		setAttribute(IMAGE, new Object[] { copyImage, new Float(offsetX),
-				new Float(offsetY), Boolean.FALSE });
+		setAttribute(IMAGE, new Object[] { copyImage, Float.valueOf(offsetX),
+				Float.valueOf(offsetY), Boolean.FALSE });
 	}
 
 	/**
@@ -261,7 +261,7 @@
 		if (tabPosition < 0) {
 			throw new IllegalArgumentException("A tab position may not be lower than 0; yours is " + tabPosition);
 		}
-		setAttribute(TAB, new Object[] {separator, new Float(tabPosition), Boolean.valueOf(newline), new Float(0)});
+		setAttribute(TAB, new Object[] {separator, Float.valueOf(tabPosition), Boolean.valueOf(newline), Float.valueOf(0)});
 	}
 
 	/**
@@ -279,8 +279,8 @@
 	public Chunk(Image image, float offsetX, float offsetY,
 			boolean changeLeading) {
 		this(OBJECT_REPLACEMENT_CHARACTER, new Font());
-		setAttribute(IMAGE, new Object[] { image, new Float(offsetX),
-				new Float(offsetY), Boolean.valueOf(changeLeading) });
+		setAttribute(IMAGE, new Object[] { image, Float.valueOf(offsetX),
+				Float.valueOf(offsetY), Boolean.valueOf(changeLeading) });
 	}
 
 	// implementation of the Element-methods
@@ -462,7 +462,7 @@
 	 * @return this <CODE>Chunk</CODE>
 	 */
 	public Chunk setHorizontalScaling(float scale) {
-		return setAttribute(HSCALE, new Float(scale));
+		return setAttribute(HSCALE, Float.valueOf(scale));
 	}
 
 	/**
@@ -549,7 +549,7 @@
 	 */
 
 	public Chunk setTextRise(float rise) {
-		return setAttribute(SUBSUPSCRIPT, new Float(rise));
+		return setAttribute(SUBSUPSCRIPT, Float.valueOf(rise));
 	}
 
 	/**
@@ -643,8 +643,8 @@
 	 */
 	public Chunk setTextRenderMode(int mode, float strokeWidth,
 			Color strokeColor) {
-		return setAttribute(TEXTRENDERMODE, new Object[] { new Integer(mode),
-				new Float(strokeWidth), strokeColor });
+		return setAttribute(TEXTRENDERMODE, new Object[] { Integer.valueOf(mode),
+				Float.valueOf(strokeWidth), strokeColor });
 	}
 
 	/** Key for split character. */
@@ -705,7 +705,7 @@
 
 	public Chunk setRemoteGoto(String filename, int page) {
 		return setAttribute(REMOTEGOTO, new Object[] { filename,
-				new Integer(page) });
+				Integer.valueOf(page) });
 	}
 
 	/** Key for local goto. */
--- a/core/com/lowagie/text/Image.java
+++ b/core/com/lowagie/text/Image.java
@@ -1362,7 +1362,7 @@
 	/** Creates a new serial id. */
 	static protected synchronized Long getSerialId() {
 		++serialId;
-		return new Long(serialId);
+		return Long.valueOf(serialId);
 	}
 
 	/**
--- a/core/com/lowagie/text/Section.java
+++ b/core/com/lowagie/text/Section.java
@@ -640,7 +640,7 @@
      * Changes the Chapter number.
      */
     public void setChapterNumber(int number) {
-    	numbers.set(numbers.size() - 1, new Integer(number));
+    	numbers.set(numbers.size() - 1, Integer.valueOf(number));
     	Object s;
     	for (Iterator i = iterator(); i.hasNext(); ) {
     		s = i.next();
@@ -669,7 +669,7 @@
      */
     private void setNumbers(int number, ArrayList numbers) {
         this.numbers = new ArrayList();
-        this.numbers.add(new Integer(number));
+        this.numbers.add(Integer.valueOf(number));
         this.numbers.addAll(numbers);
     }
 
--- a/core/com/lowagie/text/html/simpleparser/HTMLWorker.java
+++ b/core/com/lowagie/text/html/simpleparser/HTMLWorker.java
@@ -368,7 +368,7 @@
 				cprops.addToChain(tag, h);
 				com.lowagie.text.List list = new com.lowagie.text.List(false);
 				try{
-					list.setIndentationLeft(new Float(cprops.getProperty("indent")).floatValue());
+					list.setIndentationLeft(Float.valueOf(cprops.getProperty("indent")).floatValue());
 				}catch (Exception e) {
 					list.setAutoindent(true);
 				}
@@ -383,7 +383,7 @@
 				cprops.addToChain(tag, h);
 				com.lowagie.text.List list = new com.lowagie.text.List(true);
 				try{
-					list.setIndentationLeft(new Float(cprops.getProperty("indent")).floatValue());
+					list.setIndentationLeft(Float.valueOf(cprops.getProperty("indent")).floatValue());
 				}catch (Exception e) {
 					list.setAutoindent(true);
 				}
--- a/core/com/lowagie/text/pdf/AcroFields.java
+++ b/core/com/lowagie/text/pdf/AcroFields.java
@@ -516,30 +516,30 @@
                     if (operator.equals("Tf")) {
                         if (stack.size() >= 2) {
                             ret[DA_FONT] = stack.get(stack.size() - 2);
-                            ret[DA_SIZE] = new Float((String)stack.get(stack.size() - 1));
+                            ret[DA_SIZE] = Float.valueOf((String)stack.get(stack.size() - 1));
                         }
                     }
                     else if (operator.equals("g")) {
                         if (stack.size() >= 1) {
-                            float gray = new Float((String)stack.get(stack.size() - 1)).floatValue();
+                            float gray = Float.valueOf((String)stack.get(stack.size() - 1)).floatValue();
                             if (gray != 0)
                                 ret[DA_COLOR] = new GrayColor(gray);
                         }
                     }
                     else if (operator.equals("rg")) {
                         if (stack.size() >= 3) {
-                            float red = new Float((String)stack.get(stack.size() - 3)).floatValue();
-                            float green = new Float((String)stack.get(stack.size() - 2)).floatValue();
-                            float blue = new Float((String)stack.get(stack.size() - 1)).floatValue();
+                            float red = Float.valueOf((String)stack.get(stack.size() - 3)).floatValue();
+                            float green = Float.valueOf((String)stack.get(stack.size() - 2)).floatValue();
+                            float blue = Float.valueOf((String)stack.get(stack.size() - 1)).floatValue();
                             ret[DA_COLOR] = new Color(red, green, blue);
                         }
                     }
                     else if (operator.equals("k")) {
                         if (stack.size() >= 4) {
-                            float cyan = new Float((String)stack.get(stack.size() - 4)).floatValue();
-                            float magenta = new Float((String)stack.get(stack.size() - 3)).floatValue();
-                            float yellow = new Float((String)stack.get(stack.size() - 2)).floatValue();
-                            float black = new Float((String)stack.get(stack.size() - 1)).floatValue();
+                            float cyan = Float.valueOf((String)stack.get(stack.size() - 4)).floatValue();
+                            float magenta = Float.valueOf((String)stack.get(stack.size() - 3)).floatValue();
+                            float yellow = Float.valueOf((String)stack.get(stack.size() - 2)).floatValue();
+                            float black = Float.valueOf((String)stack.get(stack.size() - 1)).floatValue();
                             ret[DA_COLOR] = new CMYKColor(cyan, magenta, yellow, black);
                         }
                     }
@@ -575,7 +575,7 @@
                             PRIndirectReference por = (PRIndirectReference)po;
                             BaseFont bp = new DocumentFont((PRIndirectReference)po);
                             tx.setFont(bp);
-                            Integer porkey = new Integer(por.getNumber());
+                            Integer porkey = Integer.valueOf(por.getNumber());
                             BaseFont porf = (BaseFont)extensionFonts.get(porkey);
                             if (porf == null) {
                                 if (!extensionFonts.containsKey(porkey)) {
@@ -1956,7 +1956,7 @@
          * @param pg
          */
         void addPage(int pg) {
-            page.add(new Integer(pg));
+            page.add(Integer.valueOf(pg));
         }
 
         /**
@@ -1966,7 +1966,7 @@
          * @param idx
          */
         void forcePage(int idx, int pg) {
-            page.set(idx, new Integer( pg ));
+            page.set(idx, Integer.valueOf( pg ));
         }
 
         /**
@@ -1987,7 +1987,7 @@
          * @param order
          */
         void addTabOrder(int order) {
-            tabOrder.add(new Integer(order));
+            tabOrder.add(Integer.valueOf(order));
         }
     }
 
--- a/core/com/lowagie/text/pdf/BarcodeDatamatrix.java
+++ b/core/com/lowagie/text/pdf/BarcodeDatamatrix.java
@@ -984,7 +984,7 @@
         }
         
         static short[] doPlacement(int nrow, int ncol) {
-            Integer key = new Integer(nrow * 1000 + ncol);
+            Integer key = Integer.valueOf(nrow * 1000 + ncol);
             short[] pc = (short[])cache.get(key);
             if (pc != null)
                 return pc;
--- a/core/com/lowagie/text/pdf/BaseField.java
+++ b/core/com/lowagie/text/pdf/BaseField.java
@@ -147,7 +147,7 @@
  
     static {
         fieldKeys.putAll(PdfCopyFieldsImp.fieldKeys);
-        fieldKeys.put(PdfName.T, new Integer(1));
+        fieldKeys.put(PdfName.T, Integer.valueOf(1));
     }
     /** Creates a new <CODE>TextField</CODE>.
      * @param writer the document <CODE>PdfWriter</CODE>
--- a/core/com/lowagie/text/pdf/CFFFont.java
+++ b/core/com/lowagie/text/pdf/CFFFont.java
@@ -297,21 +297,21 @@
             char b0 = getCard8();
             if (b0 == 29) {
                 int item = getInt();
-                args[arg_count] = new Integer(item);
+                args[arg_count] = Integer.valueOf(item);
                 arg_count++;
                 //System.err.println(item+" ");
                 continue;
             }
             if (b0 == 28) {
                 short item = getShort();
-                args[arg_count] = new Integer(item);
+                args[arg_count] = Integer.valueOf(item);
                 arg_count++;
                 //System.err.println(item+" ");
                 continue;
             }
             if (b0 >= 32 && b0 <= 246) {
                 byte item = (byte) (b0-139);
-                args[arg_count] = new Integer(item);
+                args[arg_count] = Integer.valueOf(item);
                 arg_count++;
                 //System.err.println(item+" ");
                 continue;
@@ -319,7 +319,7 @@
             if (b0 >= 247 && b0 <= 250) {
                 char b1 = getCard8();
                 short item = (short) ((b0-247)*256+b1+108);
-                args[arg_count] = new Integer(item);
+                args[arg_count] = Integer.valueOf(item);
                 arg_count++;
                 //System.err.println(item+" ");
                 continue;
@@ -327,7 +327,7 @@
             if (b0 >= 251 && b0 <= 254) {
                 char b1 = getCard8();
                 short item = (short) (-(b0-251)*256-b1-108);
-                args[arg_count] = new Integer(item);
+                args[arg_count] = Integer.valueOf(item);
                 arg_count++;
                 //System.err.println(item+" ");
                 continue;
--- a/core/com/lowagie/text/pdf/CFFFontSubset.java
+++ b/core/com/lowagie/text/pdf/CFFFontSubset.java
@@ -331,7 +331,7 @@
 			// Pop the glyph's FD
 			int FD = FDSelect[glyph];
 			// Put the FD index into the FDArrayUsed HashMap
-			FDArrayUsed.put(new Integer(FD),null);
+			FDArrayUsed.put(Integer.valueOf(FD),null);
 		}
 	}
 
@@ -662,10 +662,10 @@
             		// Calc the index of the Subrs
             		int Subr = ((Integer)TopElement).intValue() + LBias;
             		// If the subr isn't in the HashMap -> Put in
-        			if (!hSubr.containsKey(new Integer (Subr)))
+        			if (!hSubr.containsKey(Integer.valueOf (Subr)))
             		{
-            			hSubr.put(new Integer(Subr),null);
-            			lSubr.add(new Integer(Subr));
+            			hSubr.put(Integer.valueOf(Subr),null);
+            			lSubr.add(Integer.valueOf(Subr));
             		}
         			CalcHints(LSubrsOffsets[Subr],LSubrsOffsets[Subr+1],LBias,GBias,LSubrsOffsets);
         			seek(pos);
@@ -680,10 +680,10 @@
 	        		// Calc the index of the Subrs
 	        		int Subr = ((Integer)TopElement).intValue() + GBias;
 	        		// If the subr isn't in the HashMap -> Put in
-	        		if (!hGSubrsUsed.containsKey(new Integer (Subr)))
+	        		if (!hGSubrsUsed.containsKey(Integer.valueOf (Subr)))
 	        		{
-	        			hGSubrsUsed.put(new Integer(Subr),null);
-	        			lGSubrsUsed.add(new Integer(Subr));
+	        			hGSubrsUsed.put(Integer.valueOf(Subr),null);
+	        			lGSubrsUsed.add(Integer.valueOf(Subr));
 	        		}
 	        		CalcHints(gsubrOffsets[Subr],gsubrOffsets[Subr+1],LBias,GBias,LSubrsOffsets);
 	        		seek(pos);
@@ -806,27 +806,27 @@
             {
             	int first = getCard8();
             	int second = getCard8();
-            	args[arg_count] = new Integer(first<<8 | second);
+            	args[arg_count] = Integer.valueOf(first<<8 | second);
             	arg_count++;
             	continue;
             }
             if (b0 >= 32 && b0 <= 246) // The byte read is the byte;
             {
-            	args[arg_count] = new Integer(b0 - 139);
+            	args[arg_count] = Integer.valueOf(b0 - 139);
             	arg_count++;
             	continue;
             }
             if (b0 >= 247 && b0 <= 250) // The byte read and the next byte constitute a short int
             {
             	int w = getCard8();
-            	args[arg_count] = new Integer((b0-247)*256 + w + 108);
+            	args[arg_count] = Integer.valueOf((b0-247)*256 + w + 108);
             	arg_count++;
             	continue;
             }
             if (b0 >= 251 && b0 <= 254)// Same as above except negative
             {
             	int w = getCard8();
-            	args[arg_count] = new Integer(-(b0-251)*256 - w - 108);
+            	args[arg_count] = Integer.valueOf(-(b0-251)*256 - w - 108);
             	arg_count++;
             	continue;
             }
@@ -836,7 +836,7 @@
             	int second = getCard8();
             	int third = getCard8();
             	int fourth = getCard8();
-            	args[arg_count] = new Integer(first<<24 | second<<16 | third<<8 | fourth);
+            	args[arg_count] = Integer.valueOf(first<<24 | second<<16 | third<<8 | fourth);
             	arg_count++;
             	continue;
             }
@@ -944,7 +944,7 @@
 			NewOffsets[i] = Offset;
 			// If the object in the offset is also present in the used
 			// HashMap then increment the offset var by its size
-			if (Used.containsKey(new Integer(i))) {
+			if (Used.containsKey(Integer.valueOf(i))) {
 				Offset += Offsets[i+1] - Offsets[i];
 			} else {
 				// Else the same offset is kept in i+1.
@@ -1438,7 +1438,7 @@
 	    // Else do nothing
 	    // At the end of each object mark its ending (Even if wasn't written)
 		for (int k=0; k<fonts[Font].FDArrayOffsets.length-1; k++) {
-			if (FDArrayUsed.containsKey(new Integer (k)))
+			if (FDArrayUsed.containsKey(Integer.valueOf (k)))
 			{
 				// Goto beginning of objects
 	            seek(fonts[Font].FDArrayOffsets[k]);
@@ -1490,7 +1490,7 @@
 	    // Else do nothing
 		for (int i=0;i<fonts[Font].fdprivateOffsets.length;i++)
 		{
-			if (FDArrayUsed.containsKey(new Integer (i)))
+			if (FDArrayUsed.containsKey(Integer.valueOf (i)))
 			{
 				// Mark beginning
 		        OutputList.addLast(new MarkerItem(fdPrivate[i]));
--- a/core/com/lowagie/text/pdf/ColumnText.java
+++ b/core/com/lowagie/text/pdf/ColumnText.java
@@ -811,7 +811,7 @@
         float ratio = spaceCharRatio;
         Object currentValues[] = new Object[2];
         PdfFont currentFont = null;
-        Float lastBaseFactor = new Float(0);
+        Float lastBaseFactor = Float.valueOf(0);
         currentValues[1] = lastBaseFactor;
         PdfDocument pdf = null;
         PdfContentByte graphics = null;
@@ -1230,7 +1230,7 @@
                         else ++count;
                     }
                     else if (obj instanceof com.lowagie.text.List) {
-                        stack.push(new Object[]{list, new Integer(k), new Float(listIndentation)});
+                        stack.push(new Object[]{list, Integer.valueOf(k), Float.valueOf(listIndentation)});
                         list = (com.lowagie.text.List)obj;
                         items = list.getItems();
                         listIndentation += list.getIndentationLeft();
--- a/core/com/lowagie/text/pdf/DocumentFont.java
+++ b/core/com/lowagie/text/pdf/DocumentFont.java
@@ -222,7 +222,7 @@
                                 int w = dw;
                                 if (widths.containsKey(cidc))
                                     w = widths.get(cidc);
-                                metrics.put(new Integer(unic), new int[]{cidc, w});
+                                metrics.put(Integer.valueOf(unic), new int[]{cidc, w});
                             }
                         }
                     }
@@ -242,7 +242,7 @@
                                         int w = dw;
                                         if (widths.containsKey(cid1c))
                                             w = widths.get(cid1c);
-                                        metrics.put(new Integer(unic), new int[]{cid1c, w});
+                                        metrics.put(Integer.valueOf(unic), new int[]{cid1c, w});
                                     }
                                 }
                             }
@@ -255,7 +255,7 @@
                                         int w = dw;
                                         if (widths.containsKey(cid1c))
                                             w = widths.get(cid1c);
-                                        metrics.put(new Integer(unic), new int[]{cid1c, w});
+                                        metrics.put(Integer.valueOf(unic), new int[]{cid1c, w});
                                     }
                                 }
                             }
@@ -546,7 +546,7 @@
         if (cjkMirror != null)
             return cjkMirror.getWidth(char1);
         else if (isType0) {
-            int[] ws = (int[])metrics.get(new Integer(char1));
+            int[] ws = (int[])metrics.get(Integer.valueOf(char1));
             if (ws != null)
                 return ws[1];
             else
@@ -564,7 +564,7 @@
             int len = chars.length;
             int total = 0;
             for (int k = 0; k < len; ++k) {
-                int[] ws = (int[])metrics.get(new Integer(chars[k]));
+                int[] ws = (int[])metrics.get(Integer.valueOf(chars[k]));
                 if (ws != null)
                     total += ws[1];
             }
@@ -583,7 +583,7 @@
             byte[] b = new byte[len * 2];
             int bptr = 0;
             for (int k = 0; k < len; ++k) {
-                int[] ws = (int[])metrics.get(new Integer(chars[k]));
+                int[] ws = (int[])metrics.get(Integer.valueOf(chars[k]));
                 if (ws != null) {
                     int g = ws[0];
                     b[bptr++] = (byte)(g / 256);
@@ -620,7 +620,7 @@
         if (cjkMirror != null)
             return PdfEncodings.convertToBytes((char)char1, CJKFont.CJK_ENCODING);
         else if (isType0) {
-            int[] ws = (int[])metrics.get(new Integer(char1));
+            int[] ws = (int[])metrics.get(Integer.valueOf(char1));
             if (ws != null) {
                 int g = ws[0];
                 return new byte[]{(byte)(g / 256), (byte)(g)};
@@ -644,7 +644,7 @@
         if (cjkMirror != null)
             return cjkMirror.charExists(c);
         else if (isType0) {
-            return metrics.containsKey(new Integer(c));
+            return metrics.containsKey(Integer.valueOf(c));
         }
         else
             return super.charExists(c);
--- a/core/com/lowagie/text/pdf/FontDetails.java
+++ b/core/com/lowagie/text/pdf/FontDetails.java
@@ -209,7 +209,7 @@
                             metrics = ttu.getMetricsTT(b[k] & 0xff);
                             if (metrics == null)
                                 continue;
-                            longTag.put(new Integer(metrics[0]), new int[]{metrics[0], metrics[1], ttu.getUnicodeDifferences(b[k] & 0xff)});
+                            longTag.put(Integer.valueOf(metrics[0]), new int[]{metrics[0], metrics[1], ttu.getUnicodeDifferences(b[k] & 0xff)});
                             glyph[i++] = (char)metrics[0];
                         }
                     }
@@ -227,7 +227,7 @@
                     		if (metrics == null)
                     			continue;
                     		int m0 = metrics[0];
-                    		Integer gl = new Integer(m0);
+                    		Integer gl = Integer.valueOf(m0);
                     		if (!longTag.containsKey(gl))
                     			longTag.put(gl, new int[]{m0, metrics[1], val});
                     		glyph[i++] = (char)m0;
@@ -308,7 +308,7 @@
                         firstChar = 255;
                         lastChar = 255;
                     }
-                    baseFont.writeFont(writer, indirectReference, new Object[]{new Integer(firstChar), new Integer(lastChar), shortTag, Boolean.valueOf(subset)});
+                    baseFont.writeFont(writer, indirectReference, new Object[]{Integer.valueOf(firstChar), Integer.valueOf(lastChar), shortTag, Boolean.valueOf(subset)});
                     break;
                 }
                 case BaseFont.FONT_TYPE_CJK:
--- a/core/com/lowagie/text/pdf/GlyphList.java
+++ b/core/com/lowagie/text/pdf/GlyphList.java
@@ -118,6 +118,6 @@
     }
     
     public static String unicodeToName(int num) {
-        return (String)unicode2names.get(new Integer(num));
+        return (String)unicode2names.get(Integer.valueOf(num));
     }
 }
\ No newline at end of file
--- a/core/com/lowagie/text/pdf/PdfChunk.java
+++ b/core/com/lowagie/text/pdf/PdfChunk.java
@@ -207,7 +207,7 @@
         else {
             // bold simulation
             if ((style & Font.BOLD) != 0)
-                attributes.put(Chunk.TEXTRENDERMODE, new Object[]{new Integer(PdfContentByte.TEXT_RENDER_MODE_FILL_STROKE), new Float(size / 30f), null});
+                attributes.put(Chunk.TEXTRENDERMODE, new Object[]{Integer.valueOf(PdfContentByte.TEXT_RENDER_MODE_FILL_STROKE), Float.valueOf(size / 30f), null});
             // italic simulation
             if ((style & Font.ITALIC) != 0)
                 attributes.put(Chunk.SKEW, new float[]{0, ITALIC_ANGLE});
@@ -686,7 +686,7 @@
     void adjustLeft(float newValue) {
     	Object[] o = (Object[])attributes.get(Chunk.TAB);
     	if (o != null) {
-    		attributes.put(Chunk.TAB, new Object[]{o[0], o[1], o[2], new Float(newValue)});
+    		attributes.put(Chunk.TAB, new Object[]{o[0], o[1], o[2], Float.valueOf(newValue)});
     	}
     }
     
--- a/core/com/lowagie/text/pdf/PdfContentByte.java
+++ b/core/com/lowagie/text/pdf/PdfContentByte.java
@@ -2953,7 +2953,7 @@
         if (layerDepth == null)
             layerDepth = new ArrayList();
         if (layer instanceof PdfLayerMembership) {
-            layerDepth.add(new Integer(1));
+            layerDepth.add(Integer.valueOf(1));
             beginLayer2(layer);
             return;
         }
@@ -2966,7 +2966,7 @@
             }
             la = la.getParent();
         }
-        layerDepth.add(new Integer(n));
+        layerDepth.add(Integer.valueOf(n));
     }
 
     private void beginLayer2(PdfOCG layer) {
--- a/core/com/lowagie/text/pdf/PdfCopyFieldsImp.java
+++ b/core/com/lowagie/text/pdf/PdfCopyFieldsImp.java
@@ -68,7 +68,7 @@
 class PdfCopyFieldsImp extends PdfWriter {
 
     private static final PdfName iTextTag = new PdfName("_iTextTag_");
-    private static final Integer zero = new Integer(0);
+    private static final Integer zero = Integer.valueOf(0);
     ArrayList readers = new ArrayList();
     HashMap readers2intrefs = new HashMap();
     HashMap pages2intrefs = new HashMap();
@@ -242,7 +242,7 @@
             for (int k = 0; k < size; ++k) {
                 t.add(zero);
             }
-            t.add(new Integer(v));
+            t.add(Integer.valueOf(v));
             tabOrder.put(annots, t);
             annots.add(ind);
         }
@@ -250,14 +250,14 @@
             int size = t.size() - 1;
             for (int k = size; k >= 0; --k) {
                 if (((Integer)t.get(k)).intValue() <= v) {
-                    t.add(k + 1, new Integer(v));
+                    t.add(k + 1, Integer.valueOf(v));
                     annots.add(k + 1, ind);
                     size = -2;
                     break;
                 }
             }
             if (size != -2) {
-                t.add(0, new Integer(v));
+                t.add(0, Integer.valueOf(v));
                 annots.add(0, ind);
             }
         }
@@ -624,7 +624,7 @@
     protected static final HashMap widgetKeys = new HashMap();
     protected static final HashMap fieldKeys = new HashMap();
     static {
-        Integer one = new Integer(1);
+        Integer one = Integer.valueOf(1);
         widgetKeys.put(PdfName.SUBTYPE, one);
         widgetKeys.put(PdfName.CONTENTS, one);
         widgetKeys.put(PdfName.RECT, one);
--- a/core/com/lowagie/text/pdf/PdfDocument.java
+++ b/core/com/lowagie/text/pdf/PdfDocument.java
@@ -1312,7 +1312,7 @@
         PdfFont currentFont = null;
         float displacement = 0;
         PdfLine l;
-        Float lastBaseFactor = new Float(0);
+        Float lastBaseFactor = Float.valueOf(0);
         currentValues[1] = lastBaseFactor;
         // looping over all the lines
         for (Iterator i = lines.iterator(); i.hasNext(); ) {
@@ -1703,7 +1703,7 @@
         if (adjustMatrix)
             text.moveText(baseXMarker - text.getXTLM(), 0);
         currentValues[0] = currentFont;
-        currentValues[1] = new Float(lastBaseFactor);
+        currentValues[1] = Float.valueOf(lastBaseFactor);
     }
 
     protected Indentation indentation = new Indentation();
@@ -2563,10 +2563,10 @@
 
             Integer i = (Integer) rowspanMap.get(c);
             if (i == null) {
-                i = new Integer(c.rowspan());
+                i = Integer.valueOf(c.rowspan());
             }
 
-            i = new Integer(i.intValue() - 1);
+            i = Integer.valueOf(i.intValue() - 1);
             rowspanMap.put(c, i);
 
             if (i.intValue() < 1) {
@@ -2592,13 +2592,13 @@
         public int cellRendered(PdfCell cell, int pageNumber) {
             Integer i = (Integer) pageMap.get(cell);
             if (i == null) {
-                i = new Integer(1);
+                i = Integer.valueOf(1);
             } else {
-                i = new Integer(i.intValue() + 1);
+                i = Integer.valueOf(i.intValue() + 1);
             }
             pageMap.put(cell, i);
 
-            Integer pageInteger = new Integer(pageNumber);
+            Integer pageInteger = Integer.valueOf(pageNumber);
             Set set = (Set) pageMap.get(pageInteger);
 
             if (set == null) {
@@ -2614,13 +2614,13 @@
         public int numCellRendered(PdfCell cell) {
             Integer i = (Integer) pageMap.get(cell);
             if (i == null) {
-                i = new Integer(0);
+                i = Integer.valueOf(0);
             }
             return i.intValue();
         }
 
         public boolean isCellRenderedOnPage(PdfCell cell, int pageNumber) {
-            Integer pageInteger = new Integer(pageNumber);
+            Integer pageInteger = Integer.valueOf(pageNumber);
             Set set = (Set) pageMap.get(pageInteger);
 
             if (set != null) {
--- a/core/com/lowagie/text/pdf/PdfGraphics2D.java
+++ b/core/com/lowagie/text/pdf/PdfGraphics2D.java
@@ -940,7 +940,7 @@
         g2.kid = true;
         if (this.kids == null)
             this.kids = new ArrayList();
-        this.kids.add(new Integer(cb.getInternalBuffer().size()));
+        this.kids.add(Integer.valueOf(cb.getInternalBuffer().size()));
         this.kids.add(g2);
         return g2;
     }
--- a/core/com/lowagie/text/pdf/PdfNumberTree.java
+++ b/core/com/lowagie/text/pdf/PdfNumberTree.java
@@ -136,7 +136,7 @@
         if (nn != null) {
             for (int k = 0; k < nn.size(); ++k) {
                 PdfNumber s = (PdfNumber)PdfReader.getPdfObjectRelease(nn.getPdfObject(k++));
-                items.put(new Integer(s.intValue()), nn.getPdfObject(k));
+                items.put(Integer.valueOf(s.intValue()), nn.getPdfObject(k));
             }
         }
         else if ((nn = (PdfArray)PdfReader.getPdfObjectRelease(dic.get(PdfName.KIDS))) != null) {
@@ -153,4 +153,4 @@
             iterateItems(dic, items);
         return items;
     }
-}
\ No newline at end of file
+}
--- a/core/com/lowagie/text/pdf/PdfPageLabels.java
+++ b/core/com/lowagie/text/pdf/PdfPageLabels.java
@@ -115,7 +115,7 @@
             dic.put(PdfName.P, new PdfString(text, PdfObject.TEXT_UNICODE));
         if (firstPage != 1)
             dic.put(PdfName.ST, new PdfNumber(firstPage));
-        map.put(new Integer(page - 1), dic);
+        map.put(Integer.valueOf(page - 1), dic);
     }
 
     /** Adds or replaces a page label. The first logical page has the default
@@ -149,7 +149,7 @@
     public void removePageLabel(int page) {
         if (page <= 1)
             return;
-        map.remove(new Integer(page - 1));
+        map.remove(Integer.valueOf(page - 1));
     }
 
     /** Gets the page label dictionary to insert into the document.
@@ -187,7 +187,7 @@
 		String prefix = "";
 		char type = 'D';
 		for (int i = 0; i < n; i++) {
-			current = new Integer(i);
+			current = Integer.valueOf(i);
 			if (numberTree.containsKey(current)) {
 				PdfDictionary d = (PdfDictionary)PdfReader.getPdfObjectRelease((PdfObject)numberTree.get(current));
 				if (d.contains(PdfName.ST)) {
@@ -294,4 +294,4 @@
             this.logicalPage = logicalPage;
         }
     }
-}
\ No newline at end of file
+}
--- a/core/com/lowagie/text/pdf/PdfReader.java
+++ b/core/com/lowagie/text/pdf/PdfReader.java
@@ -1447,7 +1447,7 @@
                                 objStmToOffset.put(field2, 0);
                             }
                             else {
-                                Integer on = new Integer(field2);
+                                Integer on = Integer.valueOf(field2);
                                 IntHashtable seq = (IntHashtable)objStmMark.get(on);
                                 if (seq == null) {
                                     seq = new IntHashtable();
@@ -2874,9 +2874,9 @@
                         }
                     }
                     if (objs == null)
-                        state.push(new Object[]{ar, new Integer(k + 1)});
+                        state.push(new Object[]{ar, Integer.valueOf(k + 1)});
                     else {
-                        objs[1] = new Integer(k + 1);
+                        objs[1] = Integer.valueOf(k + 1);
                         state.push(objs);
                     }
                     state.push(v);
@@ -2895,9 +2895,9 @@
                         }
                     }
                     if (objs == null)
-                        state.push(new Object[]{keys, dic, new Integer(k + 1)});
+                        state.push(new Object[]{keys, dic, Integer.valueOf(k + 1)});
                     else {
-                        objs[2] = new Integer(k + 1);
+                        objs[2] = Integer.valueOf(k + 1);
                         state.push(objs);
                     }
                     state.push(v);
--- a/core/com/lowagie/text/pdf/PdfReaderInstance.java
+++ b/core/com/lowagie/text/pdf/PdfReaderInstance.java
@@ -84,7 +84,7 @@
             throw new IllegalArgumentException("PdfReader not opened with owner password");
         if (pageNumber < 1 || pageNumber > reader.getNumberOfPages())
             throw new IllegalArgumentException("Invalid page number: " + pageNumber);
-        Integer i = new Integer(pageNumber);
+        Integer i = Integer.valueOf(pageNumber);
         PdfImportedPage pageT = (PdfImportedPage)importedPages.get(i);
         if (pageT == null) {
             pageT = new PdfImportedPage(this, writer, pageNumber);
@@ -96,7 +96,7 @@
     int getNewObjectNumber(int number, int generation) {
         if (myXref[number] == 0) {
             myXref[number] = writer.getIndirectReferenceNumber();
-            nextRound.add(new Integer(number));
+            nextRound.add(Integer.valueOf(number));
         }
         return myXref[number];
     }
@@ -133,7 +133,7 @@
         dic.put(PdfName.RESOURCES, PdfReader.getPdfObjectRelease(page.get(PdfName.RESOURCES)));
         dic.put(PdfName.TYPE, PdfName.XOBJECT);
         dic.put(PdfName.SUBTYPE, PdfName.FORM);
-        PdfImportedPage impPage = (PdfImportedPage)importedPages.get(new Integer(pageNumber));
+        PdfImportedPage impPage = (PdfImportedPage)importedPages.get(Integer.valueOf(pageNumber));
         dic.put(PdfName.BBOX, new PdfRectangle(impPage.getBoundingBox()));
         PdfArray matrix = impPage.getMatrix();
         if (matrix == null)
--- a/core/com/lowagie/text/pdf/PdfStructureTreeRoot.java
+++ b/core/com/lowagie/text/pdf/PdfStructureTreeRoot.java
@@ -107,7 +107,7 @@
     }
     
     void setPageMark(int page, PdfIndirectReference struc) {
-        Integer i = new Integer(page);
+        Integer i = Integer.valueOf(page);
         PdfArray ar = (PdfArray)parentTree.get(i);
         if (ar == null) {
             ar = new PdfArray();
--- a/core/com/lowagie/text/pdf/PdfTextArray.java
+++ b/core/com/lowagie/text/pdf/PdfTextArray.java
@@ -92,14 +92,14 @@
     public void add(float number) {
         if (number != 0) {
             if (lastNum != null) {
-                lastNum = new Float(number + lastNum.floatValue());
+                lastNum = Float.valueOf(number + lastNum.floatValue());
                 if (lastNum.floatValue() != 0) {
                     replaceLast(lastNum);
                 } else {
                     arrayList.remove(arrayList.size() - 1);
                 }
             } else {
-                lastNum = new Float(number);
+                lastNum = Float.valueOf(number);
                 arrayList.add(lastNum);
             }
             
--- a/core/com/lowagie/text/pdf/PdfWriter.java
+++ b/core/com/lowagie/text/pdf/PdfWriter.java
@@ -451,14 +451,14 @@
                 if (first + len == entry.getRefnum())
                     ++len;
                 else {
-                    sections.add(new Integer(first));
-                    sections.add(new Integer(len));
+                    sections.add(Integer.valueOf(first));
+                    sections.add(Integer.valueOf(len));
                     first = entry.getRefnum();
                     len = 1;
                 }
             }
-            sections.add(new Integer(first));
-            sections.add(new Integer(len));
+            sections.add(Integer.valueOf(first));
+            sections.add(Integer.valueOf(len));
             if (writer.isFullCompression()) {
                 int mid = 4;
                 int mask = 0xff000000;
--- a/core/com/lowagie/text/pdf/SequenceList.java
+++ b/core/com/lowagie/text/pdf/SequenceList.java
@@ -293,7 +293,7 @@
                             parse.low -= ((parse.low & 1) == 1 ? 0 : 1);
                     }
                     for (int k = parse.low; k >= parse.high; k += inc)
-                        list.add(new Integer(k));
+                        list.add(Integer.valueOf(k));
                 }
                 else {
                     if (parse.odd || parse.even) {
@@ -304,7 +304,7 @@
                             parse.low += ((parse.low & 1) == 1 ? 1 : 0);
                     }
                     for (int k = parse.low; k <= parse.high; k += inc) {
-                        list.add(new Integer(k));
+                        list.add(Integer.valueOf(k));
                     }
                 }
             }
--- a/core/com/lowagie/text/pdf/SimpleBookmark.java
+++ b/core/com/lowagie/text/pdf/SimpleBookmark.java
@@ -556,7 +556,7 @@
             createOutlineAction(outline, map, writer, namedAsNames);
             writer.addToBody(outline, refs[ptr]);
         }
-        return new Object[]{refs[0], refs[refs.length - 1], new Integer(count)};
+        return new Object[]{refs[0], refs[refs.length - 1], Integer.valueOf(count)};
     }
     
     /**
--- a/core/com/lowagie/text/pdf/TrueTypeFont.java
+++ b/core/com/lowagie/text/pdf/TrueTypeFont.java
@@ -887,7 +887,7 @@
                 int[] r = new int[2];
                 r[0] = startGlyphID;
                 r[1] = getGlyphWidth(r[0]);
-                h.put(new Integer(i), r);
+                h.put(Integer.valueOf(i), r);
                 startGlyphID++;
             }
         }
@@ -906,7 +906,7 @@
             int r[] = new int[2];
             r[0] = rf.readUnsignedByte();
             r[1] = getGlyphWidth(r[0]);
-            h.put(new Integer(k), r);
+            h.put(Integer.valueOf(k), r);
         }
         return h;
     }
@@ -958,7 +958,7 @@
                 int r[] = new int[2];
                 r[0] = glyph;
                 r[1] = getGlyphWidth(r[0]);
-                h.put(new Integer(fontSpecific ? ((j & 0xff00) == 0xf000 ? j & 0xff : j) : j), r);
+                h.put(Integer.valueOf(fontSpecific ? ((j & 0xff00) == 0xf000 ? j & 0xff : j) : j), r);
             }
         }
         return h;
@@ -979,7 +979,7 @@
             int r[] = new int[2];
             r[0] = rf.readUnsignedShort();
             r[1] = getGlyphWidth(r[0]);
-            h.put(new Integer(k + start_code), r);
+            h.put(Integer.valueOf(k + start_code), r);
         }
         return h;
     }
@@ -1210,7 +1210,7 @@
             for (Iterator it = usemap.entrySet().iterator(); it.hasNext();) {
                 Map.Entry e = (Map.Entry)it.next();
                 int[] v = (int[])e.getValue();
-                Integer gi = new Integer(v[0]);
+                Integer gi = Integer.valueOf(v[0]);
                 if (longTag.containsKey(gi))
                     continue;
                 int c = ((Integer)e.getKey()).intValue();
@@ -1275,7 +1275,7 @@
                                 metrics = getMetricsTT(unicodeDifferences[k]);
                         }
                         if (metrics != null)
-                            glyphs.put(new Integer(metrics[0]), null);
+                            glyphs.put(Integer.valueOf(metrics[0]), null);
                     }
                 }
                 addRangeUni(glyphs, false, subsetp);
@@ -1403,15 +1403,15 @@
      */    
     public int[] getMetricsTT(int c) {
         if (cmapExt != null)
-            return (int[])cmapExt.get(new Integer(c));
+            return (int[])cmapExt.get(Integer.valueOf(c));
         if (!fontSpecific && cmap31 != null) 
-            return (int[])cmap31.get(new Integer(c));
+            return (int[])cmap31.get(Integer.valueOf(c));
         if (fontSpecific && cmap10 != null) 
-            return (int[])cmap10.get(new Integer(c));
+            return (int[])cmap10.get(Integer.valueOf(c));
         if (cmap31 != null) 
-            return (int[])cmap31.get(new Integer(c));
+            return (int[])cmap31.get(Integer.valueOf(c));
         if (cmap10 != null) 
-            return (int[])cmap10.get(new Integer(c));
+            return (int[])cmap10.get(Integer.valueOf(c));
         return null;
     }
 
@@ -1525,7 +1525,7 @@
             map = cmap31;
         if (map == null)
             return null;
-        int metric[] = (int[])map.get(new Integer(c));
+        int metric[] = (int[])map.get(Integer.valueOf(c));
         if (metric == null || bboxes == null)
             return null;
         return bboxes[metric[0]];
--- a/core/com/lowagie/text/pdf/TrueTypeFontSubSet.java
+++ b/core/com/lowagie/text/pdf/TrueTypeFontSubSet.java
@@ -330,7 +330,7 @@
         tableLocation = (int[])tableDirectory.get("glyf");
         if (tableLocation == null)
             throw new DocumentException("Table 'glyf' does not exist in " + fileName);
-        Integer glyph0 = new Integer(0);
+        Integer glyph0 = Integer.valueOf(0);
         if (!glyphsUsed.containsKey(glyph0)) {
             glyphsUsed.put(glyph0, null);
             glyphsInList.add(glyph0);
@@ -353,7 +353,7 @@
         rf.skipBytes(8);
         for(;;) {
             int flags = rf.readUnsignedShort();
-            Integer cGlyph = new Integer(rf.readUnsignedShort());
+            Integer cGlyph = Integer.valueOf(rf.readUnsignedShort());
             if (!glyphsUsed.containsKey(cGlyph)) {
                 glyphsUsed.put(cGlyph, null);
                 glyphsInList.add(cGlyph);
--- a/core/com/lowagie/text/pdf/TrueTypeFontUnicode.java
+++ b/core/com/lowagie/text/pdf/TrueTypeFontUnicode.java
@@ -500,7 +500,7 @@
      */    
     public int[] getMetricsTT(int c) {
         if (cmapExt != null)
-            return (int[])cmapExt.get(new Integer(c));
+            return (int[])cmapExt.get(Integer.valueOf(c));
         HashMap map = null;
         if (fontSpecific)
             map = cmap10;
@@ -510,12 +510,12 @@
             return null;
         if (fontSpecific) {
             if ((c & 0xffffff00) == 0 || (c & 0xffffff00) == 0xf000)
-                return (int[])map.get(new Integer(c & 0xff));
+                return (int[])map.get(Integer.valueOf(c & 0xff));
             else
                 return null;
         }
         else
-            return (int[])map.get(new Integer(c));
+            return (int[])map.get(Integer.valueOf(c));
     }
     
     /**
--- a/core/com/lowagie/text/pdf/Type1Font.java
+++ b/core/com/lowagie/text/pdf/Type1Font.java
@@ -292,7 +292,7 @@
     int getRawWidth(int c, String name) {
         Object metrics[];
         if (name == null) { // font specific
-            metrics = (Object[])CharMetrics.get(new Integer(c));
+            metrics = (Object[])CharMetrics.get(Integer.valueOf(c));
         }
         else {
             if (name.equals(".notdef"))
@@ -403,8 +403,8 @@
                 isMetrics = false;
                 break;
             }
-            Integer C = new Integer(-1);
-            Integer WX = new Integer(250);
+            Integer C = Integer.valueOf(-1);
+            Integer WX = Integer.valueOf(250);
             String N = "";
             int B[] = null;
 
@@ -418,7 +418,7 @@
                 if (ident.equals("C"))
                     C = Integer.valueOf(tokc.nextToken());
                 else if (ident.equals("WX"))
-                    WX = new Integer((int)Float.parseFloat(tokc.nextToken()));
+                    WX = Integer.valueOf((int)Float.parseFloat(tokc.nextToken()));
                 else if (ident.equals("N"))
                     N = tokc.nextToken();
                 else if (ident.equals("B")) {
@@ -466,7 +466,7 @@
             {
                 String first = tok.nextToken();
                 String second = tok.nextToken();
-                Integer width = new Integer((int)Float.parseFloat(tok.nextToken()));
+                Integer width = Integer.valueOf((int)Float.parseFloat(tok.nextToken()));
                 Object relates[] = (Object[])KernPairs.get(first);
                 if (relates == null)
                     KernPairs.put(first, new Object[]{second, width});
@@ -790,13 +790,13 @@
             return false;
         Object obj[] = (Object[])KernPairs.get(first);
         if (obj == null) {
-            obj = new Object[]{second, new Integer(kern)};
+            obj = new Object[]{second, Integer.valueOf(kern)};
             KernPairs.put(first, obj);
             return true;
         }
         for (int k = 0; k < obj.length; k += 2) {
             if (second.equals(obj[k])) {
-                obj[k + 1] = new Integer(kern);
+                obj[k + 1] = Integer.valueOf(kern);
                 return true;
             }
         }
@@ -804,7 +804,7 @@
         Object obj2[] = new Object[size + 2];
         System.arraycopy(obj, 0, obj2, 0, size);
         obj2[size] = second;
-        obj2[size + 1] = new Integer(kern);
+        obj2[size + 1] = Integer.valueOf(kern);
         KernPairs.put(first, obj2);
         return true;
     }
@@ -812,7 +812,7 @@
     protected int[] getRawCharBBox(int c, String name) {
         Object metrics[];
         if (name == null) { // font specific
-            metrics = (Object[])CharMetrics.get(new Integer(c));
+            metrics = (Object[])CharMetrics.get(Integer.valueOf(c));
         }
         else {
             if (name.equals(".notdef"))
--- a/core/com/lowagie/text/pdf/Type3Font.java
+++ b/core/com/lowagie/text/pdf/Type3Font.java
@@ -127,7 +127,7 @@
         if (c == 0 || c > 255)
             throw new IllegalArgumentException("The char " + (int)c + " doesn't belong in this Type3 font");
         usedSlot[c] = true;
-        Integer ck = new Integer(c);
+        Integer ck = Integer.valueOf(c);
         Type3Glyph glyph = (Type3Glyph)char2glyph.get(ck);
         if (glyph != null)
             return glyph;
@@ -237,7 +237,7 @@
                 s = "a" + c2;
             PdfName n = new PdfName(s);
             diffs.add(n);
-            Type3Glyph glyph = (Type3Glyph)char2glyph.get(new Integer(c2));
+            Type3Glyph glyph = (Type3Glyph)char2glyph.get(Integer.valueOf(c2));
             PdfStream stream = new PdfStream(glyph.toPdf(null));
             stream.flateCompress(compressionLevel);
             PdfIndirectReference refp = writer.addToBody(stream).getIndirectReference();
--- a/core/com/lowagie/text/pdf/XfaForm.java
+++ b/core/com/lowagie/text/pdf/XfaForm.java
@@ -832,9 +832,9 @@
                     String s = escapeSom(n2.getLocalName());
                     Integer i = (Integer)ss.get(s);
                     if (i == null)
-                        i = new Integer(0);
+                        i = Integer.valueOf(0);
                     else
-                        i = new Integer(i.intValue() + 1);
+                        i = Integer.valueOf(i.intValue() + 1);
                     ss.put(s, i);
                     if (hasChildren(n2)) {
                         stack.push(s + "[" + i.toString() + "]");
@@ -964,15 +964,15 @@
                         }
                         Integer i;
                         if (annon) {
-                            i = new Integer(anform);
+                            i = Integer.valueOf(anform);
                             ++anform;
                         }
                         else {
                             i = (Integer)ss.get(nn);
                             if (i == null)
-                                i = new Integer(0);
+                                i = Integer.valueOf(0);
                             else
-                                i = new Integer(i.intValue() + 1);
+                                i = Integer.valueOf(i.intValue() + 1);
                             ss.put(nn, i);
                         }
                         stack.push(nn + "[" + i.toString() + "]");
@@ -990,9 +990,9 @@
                             String nn = escapeSom(name.getNodeValue());
                             Integer i = (Integer)ff.get(nn);
                             if (i == null)
-                                i = new Integer(0);
+                                i = Integer.valueOf(0);
                             else
-                                i = new Integer(i.intValue() + 1);
+                                i = Integer.valueOf(i.intValue() + 1);
                             ff.put(nn, i);
                             stack.push(nn + "[" + i.toString() + "]");
                             String unstack = printStack();
--- a/core/com/lowagie/text/pdf/codec/BmpImage.java
+++ b/core/com/lowagie/text/pdf/codec/BmpImage.java
@@ -282,8 +282,8 @@
         int planes = readWord(inputStream);
         bitsPerPixel = readWord(inputStream);
         
-        properties.put("color_planes", new Integer(planes));
-        properties.put("bits_per_pixel", new Integer(bitsPerPixel));
+        properties.put("color_planes", Integer.valueOf(planes));
+        properties.put("bits_per_pixel", Integer.valueOf(bitsPerPixel));
         
         // As BMP always has 3 rgb bands, except for Version 5,
         // which is bgra
@@ -353,10 +353,10 @@
                     break;
             }
             
-            properties.put("x_pixels_per_meter", new Long(xPelsPerMeter));
-            properties.put("y_pixels_per_meter", new Long(yPelsPerMeter));
-            properties.put("colors_used", new Long(colorsUsed));
-            properties.put("colors_important", new Long(colorsImportant));
+            properties.put("x_pixels_per_meter", Long.valueOf(xPelsPerMeter));
+            properties.put("y_pixels_per_meter", Long.valueOf(yPelsPerMeter));
+            properties.put("colors_used", Long.valueOf(colorsUsed));
+            properties.put("colors_important", Long.valueOf(colorsImportant));
             
             if (size == 40) {
                 // Windows 3.x and Windows NT
@@ -379,17 +379,17 @@
                             redMask = 0x7C00;
                             greenMask = 0x3E0;
                             blueMask = 0x1F;
-                            properties.put("red_mask", new Integer(redMask));
-                            properties.put("green_mask", new Integer(greenMask));
-                            properties.put("blue_mask", new Integer(blueMask));
+                            properties.put("red_mask", Integer.valueOf(redMask));
+                            properties.put("green_mask", Integer.valueOf(greenMask));
+                            properties.put("blue_mask", Integer.valueOf(blueMask));
                         } else if (bitsPerPixel == 32) {
                             imageType = VERSION_3_NT_32_BIT;
                             redMask   = 0x00FF0000;
                             greenMask = 0x0000FF00;
                             blueMask  = 0x000000FF;
-                            properties.put("red_mask", new Integer(redMask));
-                            properties.put("green_mask", new Integer(greenMask));
-                            properties.put("blue_mask", new Integer(blueMask));
+                            properties.put("red_mask", Integer.valueOf(redMask));
+                            properties.put("green_mask", Integer.valueOf(greenMask));
+                            properties.put("blue_mask", Integer.valueOf(blueMask));
                         }
 
                         // Read in the palette
@@ -430,9 +430,9 @@
                         greenMask = (int)readDWord(inputStream);
                         blueMask = (int)readDWord(inputStream);
                         
-                        properties.put("red_mask", new Integer(redMask));
-                        properties.put("green_mask", new Integer(greenMask));
-                        properties.put("blue_mask", new Integer(blueMask));
+                        properties.put("red_mask", Integer.valueOf(redMask));
+                        properties.put("green_mask", Integer.valueOf(greenMask));
+                        properties.put("blue_mask", Integer.valueOf(blueMask));
                         
                         if (colorsUsed != 0) {
                             // there is a palette
@@ -496,10 +496,10 @@
                     }
                 }
                 
-                properties.put("red_mask", new Integer(redMask));
-                properties.put("green_mask", new Integer(greenMask));
-                properties.put("blue_mask", new Integer(blueMask));
-                properties.put("alpha_mask", new Integer(alphaMask));
+                properties.put("red_mask", Integer.valueOf(redMask));
+                properties.put("green_mask", Integer.valueOf(greenMask));
+                properties.put("blue_mask", Integer.valueOf(blueMask));
+                properties.put("alpha_mask", Integer.valueOf(alphaMask));
 
                 // Read in the palette
                 int numberOfEntries = (int)((bitmapOffset-14-size) / 4);
@@ -527,18 +527,18 @@
                     case LCS_CALIBRATED_RGB:
                         // All the new fields are valid only for this case
                         properties.put("color_space", "LCS_CALIBRATED_RGB");
-                        properties.put("redX", new Integer(redX));
-                        properties.put("redY", new Integer(redY));
-                        properties.put("redZ", new Integer(redZ));
-                        properties.put("greenX", new Integer(greenX));
-                        properties.put("greenY", new Integer(greenY));
-                        properties.put("greenZ", new Integer(greenZ));
-                        properties.put("blueX", new Integer(blueX));
-                        properties.put("blueY", new Integer(blueY));
-                        properties.put("blueZ", new Integer(blueZ));
-                        properties.put("gamma_red", new Long(gammaRed));
-                        properties.put("gamma_green", new Long(gammaGreen));
-                        properties.put("gamma_blue", new Long(gammaBlue));
+                        properties.put("redX", Integer.valueOf(redX));
+                        properties.put("redY", Integer.valueOf(redY));
+                        properties.put("redZ", Integer.valueOf(redZ));
+                        properties.put("greenX", Integer.valueOf(greenX));
+                        properties.put("greenY", Integer.valueOf(greenY));
+                        properties.put("greenZ", Integer.valueOf(greenZ));
+                        properties.put("blueX", Integer.valueOf(blueX));
+                        properties.put("blueY", Integer.valueOf(blueY));
+                        properties.put("blueZ", Integer.valueOf(blueZ));
+                        properties.put("gamma_red", Long.valueOf(gammaRed));
+                        properties.put("gamma_green", Long.valueOf(gammaGreen));
+                        properties.put("gamma_blue", Long.valueOf(gammaBlue));
                         
                         // break;
                         throw new
--- a/core/com/lowagie/text/pdf/codec/JBIG2SegmentReader.java
+++ b/core/com/lowagie/text/pdf/codec/JBIG2SegmentReader.java
@@ -196,7 +196,7 @@
 			return os.toByteArray();
 		}
 		public void addSegment(JBIG2Segment s) {
-			segs.put(new Integer(s.segmentNumber), s);
+			segs.put(Integer.valueOf(s.segmentNumber), s);
 		}
 		
 	}
@@ -224,14 +224,14 @@
 			do {
 				JBIG2Segment tmp = readHeader();
 				readSegment(tmp);
-				segments.put(new Integer(tmp.segmentNumber), tmp);
+				segments.put(Integer.valueOf(tmp.segmentNumber), tmp);
 			} while ( this.ra.getFilePointer() < this.ra.length() );
 		} else {
 			// D.2
 			JBIG2Segment tmp;
 			do {
 				tmp = readHeader();
-				segments.put(new Integer(tmp.segmentNumber), tmp);
+				segments.put(Integer.valueOf(tmp.segmentNumber), tmp);
 			} while ( tmp.type != END_OF_FILE );
 			Iterator segs = segments.keySet().iterator();
 			while ( segs.hasNext() ) {
@@ -258,7 +258,7 @@
 			int page_bitmap_width = ra.readInt();
 			int page_bitmap_height = ra.readInt();
 			ra.seek(last);
-			JBIG2Page p = (JBIG2Page)pages.get(new Integer(s.page));
+			JBIG2Page p = (JBIG2Page)pages.get(Integer.valueOf(s.page));
 			if ( p == null ) {
 				throw new IllegalStateException("referring to widht/height of page we havent seen yet? " + s.page);
 			}
@@ -347,11 +347,11 @@
 		s.page_association_size = page_association_size;
 		s.page_association_offset = page_association_offset;
 		
-		if ( segment_page_association > 0 && ! pages.containsKey(new Integer(segment_page_association)) ) {
-			pages.put(new Integer(segment_page_association), new JBIG2Page(segment_page_association, this));
+		if ( segment_page_association > 0 && ! pages.containsKey(Integer.valueOf(segment_page_association)) ) {
+			pages.put(Integer.valueOf(segment_page_association), new JBIG2Page(segment_page_association, this));
 		}
 		if ( segment_page_association > 0 ) {
-			((JBIG2Page)pages.get(new Integer(segment_page_association))).addSegment(s);
+			((JBIG2Page)pages.get(Integer.valueOf(segment_page_association))).addSegment(s);
 		} else {
 			globals.add(s);
 		}
@@ -402,15 +402,15 @@
 	}
 
 	public int getPageHeight(int i) {
-		return ((JBIG2Page)pages.get(new Integer(i))).pageBitmapHeight;
+		return ((JBIG2Page)pages.get(Integer.valueOf(i))).pageBitmapHeight;
 	}
 
 	public int getPageWidth(int i) {
-		return ((JBIG2Page)pages.get(new Integer(i))).pageBitmapWidth;
+		return ((JBIG2Page)pages.get(Integer.valueOf(i))).pageBitmapWidth;
 	}
 
 	public JBIG2Page getPage(int page) {
-		return (JBIG2Page)pages.get(new Integer(page));
+		return (JBIG2Page)pages.get(Integer.valueOf(page));
 	}
 
 	public byte[] getGlobal(boolean for_embedding) {
--- a/core/com/lowagie/text/pdf/codec/TIFFDirectory.java
+++ b/core/com/lowagie/text/pdf/codec/TIFFDirectory.java
@@ -262,7 +262,7 @@
             }
             
             if (processTag) {
-            fieldIndex.put(new Integer(tag), new Integer(i));
+            fieldIndex.put(Integer.valueOf(tag), Integer.valueOf(i));
             Object obj = null;
             
             switch (type) {
@@ -398,7 +398,7 @@
      * or null if the tag is not present.
      */
     public TIFFField getField(int tag) {
-        Integer i = (Integer)fieldIndex.get(new Integer(tag));
+        Integer i = (Integer)fieldIndex.get(Integer.valueOf(tag));
         if (i == null) {
             return null;
         } else {
@@ -410,7 +410,7 @@
      * Returns true if a tag appears in the directory.
      */
     public boolean isTagPresent(int tag) {
-        return fieldIndex.containsKey(new Integer(tag));
+        return fieldIndex.containsKey(Integer.valueOf(tag));
     }
     
     /**
@@ -444,7 +444,7 @@
      * TIFF_UNDEFINED.
      */
     public byte getFieldAsByte(int tag, int index) {
-        Integer i = (Integer)fieldIndex.get(new Integer(tag));
+        Integer i = (Integer)fieldIndex.get(Integer.valueOf(tag));
         byte [] b = fields[i.intValue()].getAsBytes();
         return b[index];
     }
@@ -466,7 +466,7 @@
      * TIFF_SHORT, TIFF_SSHORT, TIFF_SLONG or TIFF_LONG.
      */
     public long getFieldAsLong(int tag, int index) {
-        Integer i = (Integer)fieldIndex.get(new Integer(tag));
+        Integer i = (Integer)fieldIndex.get(Integer.valueOf(tag));
         return fields[i.intValue()].getAsLong(index);
     }
     
@@ -487,7 +487,7 @@
      * TIFF_ASCII).
      */
     public float getFieldAsFloat(int tag, int index) {
-        Integer i = (Integer)fieldIndex.get(new Integer(tag));
+        Integer i = (Integer)fieldIndex.get(Integer.valueOf(tag));
         return fields[i.intValue()].getAsFloat(index);
     }
     
@@ -507,7 +507,7 @@
      * TIFF_ASCII).
      */
     public double getFieldAsDouble(int tag, int index) {
-        Integer i = (Integer)fieldIndex.get(new Integer(tag));
+        Integer i = (Integer)fieldIndex.get(Integer.valueOf(tag));
         return fields[i.intValue()].getAsDouble(index);
     }
     
--- a/core/com/lowagie/text/pdf/events/IndexEvents.java
+++ b/core/com/lowagie/text/pdf/events/IndexEvents.java
@@ -81,7 +81,7 @@
      */
     public void onGenericTag(PdfWriter writer, Document document,
             Rectangle rect, String text) {
-        indextag.put(text, new Integer(writer.getPageNumber()));
+        indextag.put(text, Integer.valueOf(writer.getPageNumber()));
     }
 
     // --------------------------------------------------------------------
@@ -348,7 +348,7 @@
          * @param tag
          */
         public void addPageNumberAndTag(final int number, final String tag) {
-            pagenumbers.add(new Integer(number));
+            pagenumbers.add(Integer.valueOf(number));
             tags.add(tag);
         }
 
--- a/core/com/lowagie/text/pdf/fonts/cmaps/CMap.java
+++ b/core/com/lowagie/text/pdf/fonts/cmaps/CMap.java
@@ -94,7 +94,7 @@
         if( length == 1 )
         {
             
-            key = new Integer( (code[offset]+256)%256 );
+            key = Integer.valueOf( (code[offset]+256)%256 );
             result = (String)singleByteMappings.get( key );
         }
         else if( length == 2 )
@@ -102,7 +102,7 @@
             int intKey = (code[offset]+256)%256;
             intKey <<= 8;
             intKey += (code[offset+1]+256)%256;
-            key = new Integer( intKey );
+            key = Integer.valueOf( intKey );
 
             result = (String)doubleByteMappings.get( key );
         }
@@ -122,14 +122,14 @@
     {
         if( src.length == 1 )
         {
-            singleByteMappings.put( new Integer( src[0] ), dest );
+            singleByteMappings.put( Integer.valueOf( src[0] ), dest );
         }
         else if( src.length == 2 )
         {
             int intSrc = src[0]&0xFF;
             intSrc <<= 8;
             intSrc |= (src[1]&0xFF);
-            doubleByteMappings.put( new Integer( intSrc ), dest );
+            doubleByteMappings.put( Integer.valueOf( intSrc ), dest );
         }
         else
         {
--- a/core/com/lowagie/text/pdf/fonts/cmaps/CMapParser.java
+++ b/core/com/lowagie/text/pdf/fonts/cmaps/CMapParser.java
@@ -348,11 +348,11 @@
                 String value = buffer.toString();
                 if( value.indexOf( '.' ) >=0 )
                 {
-                    retval = new Double( value );
+                    retval = Double.valueOf( value );
                 }
                 else
                 {
-                    retval = new Integer( buffer.toString() );
+                    retval = Integer.valueOf( buffer.toString() );
                 }
                 break;
             }
--- a/core/com/lowagie/text/xml/simpleparser/EntitiesToSymbol.java
+++ b/core/com/lowagie/text/xml/simpleparser/EntitiesToSymbol.java
@@ -68,280 +68,280 @@
     
     static {
         map = new HashMap();
-        map.put("169", new Character((char)227));
-        map.put("172", new Character((char)216));
-        map.put("174", new Character((char)210));
-        map.put("177", new Character((char)177));
-        map.put("215", new Character((char)180));
-        map.put("247", new Character((char)184));
-        map.put("8230", new Character((char)188));
-        map.put("8242", new Character((char)162));
-        map.put("8243", new Character((char)178));
-        map.put("8260", new Character((char)164));
-        map.put("8364", new Character((char)240));
-        map.put("8465", new Character((char)193));
-        map.put("8472", new Character((char)195));
-        map.put("8476", new Character((char)194));
-        map.put("8482", new Character((char)212));
-        map.put("8501", new Character((char)192));
-        map.put("8592", new Character((char)172));
-        map.put("8593", new Character((char)173));
-        map.put("8594", new Character((char)174));
-        map.put("8595", new Character((char)175));
-        map.put("8596", new Character((char)171));
-        map.put("8629", new Character((char)191));
-        map.put("8656", new Character((char)220));
-        map.put("8657", new Character((char)221));
-        map.put("8658", new Character((char)222));
-        map.put("8659", new Character((char)223));
-        map.put("8660", new Character((char)219));
-        map.put("8704", new Character((char)34));
-        map.put("8706", new Character((char)182));
-        map.put("8707", new Character((char)36));
-        map.put("8709", new Character((char)198));
-        map.put("8711", new Character((char)209));
-        map.put("8712", new Character((char)206));
-        map.put("8713", new Character((char)207));
-        map.put("8717", new Character((char)39));
-        map.put("8719", new Character((char)213));
-        map.put("8721", new Character((char)229));
-        map.put("8722", new Character((char)45));
-        map.put("8727", new Character((char)42));
-        map.put("8729", new Character((char)183));
-        map.put("8730", new Character((char)214));
-        map.put("8733", new Character((char)181));
-        map.put("8734", new Character((char)165));
-        map.put("8736", new Character((char)208));
-        map.put("8743", new Character((char)217));
-        map.put("8744", new Character((char)218));
-        map.put("8745", new Character((char)199));
-        map.put("8746", new Character((char)200));
-        map.put("8747", new Character((char)242));
-        map.put("8756", new Character((char)92));
-        map.put("8764", new Character((char)126));
-        map.put("8773", new Character((char)64));
-        map.put("8776", new Character((char)187));
-        map.put("8800", new Character((char)185));
-        map.put("8801", new Character((char)186));
-        map.put("8804", new Character((char)163));
-        map.put("8805", new Character((char)179));
-        map.put("8834", new Character((char)204));
-        map.put("8835", new Character((char)201));
-        map.put("8836", new Character((char)203));
-        map.put("8838", new Character((char)205));
-        map.put("8839", new Character((char)202));
-        map.put("8853", new Character((char)197));
-        map.put("8855", new Character((char)196));
-        map.put("8869", new Character((char)94));
-        map.put("8901", new Character((char)215));
-        map.put("8992", new Character((char)243));
-        map.put("8993", new Character((char)245));
-        map.put("9001", new Character((char)225));
-        map.put("9002", new Character((char)241));
-        map.put("913", new Character((char)65));
-        map.put("914", new Character((char)66));
-        map.put("915", new Character((char)71));
-        map.put("916", new Character((char)68));
-        map.put("917", new Character((char)69));
-        map.put("918", new Character((char)90));
-        map.put("919", new Character((char)72));
-        map.put("920", new Character((char)81));
-        map.put("921", new Character((char)73));
-        map.put("922", new Character((char)75));
-        map.put("923", new Character((char)76));
-        map.put("924", new Character((char)77));
-        map.put("925", new Character((char)78));
-        map.put("926", new Character((char)88));
-        map.put("927", new Character((char)79));
-        map.put("928", new Character((char)80));
-        map.put("929", new Character((char)82));
-        map.put("931", new Character((char)83));
-        map.put("932", new Character((char)84));
-        map.put("933", new Character((char)85));
-        map.put("934", new Character((char)70));
-        map.put("935", new Character((char)67));
-        map.put("936", new Character((char)89));
-        map.put("937", new Character((char)87));
-        map.put("945", new Character((char)97));
-        map.put("946", new Character((char)98));
-        map.put("947", new Character((char)103));
-        map.put("948", new Character((char)100));
-        map.put("949", new Character((char)101));
-        map.put("950", new Character((char)122));
-        map.put("951", new Character((char)104));
-        map.put("952", new Character((char)113));
-        map.put("953", new Character((char)105));
-        map.put("954", new Character((char)107));
-        map.put("955", new Character((char)108));
-        map.put("956", new Character((char)109));
-        map.put("957", new Character((char)110));
-        map.put("958", new Character((char)120));
-        map.put("959", new Character((char)111));
-        map.put("960", new Character((char)112));
-        map.put("961", new Character((char)114));
-        map.put("962", new Character((char)86));
-        map.put("963", new Character((char)115));
-        map.put("964", new Character((char)116));
-        map.put("965", new Character((char)117));
-        map.put("966", new Character((char)102));
-        map.put("967", new Character((char)99));
-        map.put("9674", new Character((char)224));
-        map.put("968", new Character((char)121));
-        map.put("969", new Character((char)119));
-        map.put("977", new Character((char)74));
-        map.put("978", new Character((char)161));
-        map.put("981", new Character((char)106));
-        map.put("982", new Character((char)118));
-        map.put("9824", new Character((char)170));
-        map.put("9827", new Character((char)167));
-        map.put("9829", new Character((char)169));
-        map.put("9830", new Character((char)168));
-        map.put("Alpha", new Character((char)65));
-        map.put("Beta", new Character((char)66));
-        map.put("Chi", new Character((char)67));
-        map.put("Delta", new Character((char)68));
-        map.put("Epsilon", new Character((char)69));
-        map.put("Eta", new Character((char)72));
-        map.put("Gamma", new Character((char)71));
-        map.put("Iota", new Character((char)73));
-        map.put("Kappa", new Character((char)75));
-        map.put("Lambda", new Character((char)76));
-        map.put("Mu", new Character((char)77));
-        map.put("Nu", new Character((char)78));
-        map.put("Omega", new Character((char)87));
-        map.put("Omicron", new Character((char)79));
-        map.put("Phi", new Character((char)70));
-        map.put("Pi", new Character((char)80));
-        map.put("Prime", new Character((char)178));
-        map.put("Psi", new Character((char)89));
-        map.put("Rho", new Character((char)82));
-        map.put("Sigma", new Character((char)83));
-        map.put("Tau", new Character((char)84));
-        map.put("Theta", new Character((char)81));
-        map.put("Upsilon", new Character((char)85));
-        map.put("Xi", new Character((char)88));
-        map.put("Zeta", new Character((char)90));
-        map.put("alefsym", new Character((char)192));
-        map.put("alpha", new Character((char)97));
-        map.put("and", new Character((char)217));
-        map.put("ang", new Character((char)208));
-        map.put("asymp", new Character((char)187));
-        map.put("beta", new Character((char)98));
-        map.put("cap", new Character((char)199));
-        map.put("chi", new Character((char)99));
-        map.put("clubs", new Character((char)167));
-        map.put("cong", new Character((char)64));
-        map.put("copy", new Character((char)211));
-        map.put("crarr", new Character((char)191));
-        map.put("cup", new Character((char)200));
-        map.put("dArr", new Character((char)223));
-        map.put("darr", new Character((char)175));
-        map.put("delta", new Character((char)100));
-        map.put("diams", new Character((char)168));
-        map.put("divide", new Character((char)184));
-        map.put("empty", new Character((char)198));
-        map.put("epsilon", new Character((char)101));
-        map.put("equiv", new Character((char)186));
-        map.put("eta", new Character((char)104));
-        map.put("euro", new Character((char)240));
-        map.put("exist", new Character((char)36));
-        map.put("forall", new Character((char)34));
-        map.put("frasl", new Character((char)164));
-        map.put("gamma", new Character((char)103));
-        map.put("ge", new Character((char)179));
-        map.put("hArr", new Character((char)219));
-        map.put("harr", new Character((char)171));
-        map.put("hearts", new Character((char)169));
-        map.put("hellip", new Character((char)188));
-        map.put("horizontal arrow extender", new Character((char)190));
-        map.put("image", new Character((char)193));
-        map.put("infin", new Character((char)165));
-        map.put("int", new Character((char)242));
-        map.put("iota", new Character((char)105));
-        map.put("isin", new Character((char)206));
-        map.put("kappa", new Character((char)107));
-        map.put("lArr", new Character((char)220));
-        map.put("lambda", new Character((char)108));
-        map.put("lang", new Character((char)225));
-        map.put("large brace extender", new Character((char)239));
-        map.put("large integral extender", new Character((char)244));
-        map.put("large left brace (bottom)", new Character((char)238));
-        map.put("large left brace (middle)", new Character((char)237));
-        map.put("large left brace (top)", new Character((char)236));
-        map.put("large left bracket (bottom)", new Character((char)235));
-        map.put("large left bracket (extender)", new Character((char)234));
-        map.put("large left bracket (top)", new Character((char)233));
-        map.put("large left parenthesis (bottom)", new Character((char)232));
-        map.put("large left parenthesis (extender)", new Character((char)231));
-        map.put("large left parenthesis (top)", new Character((char)230));
-        map.put("large right brace (bottom)", new Character((char)254));
-        map.put("large right brace (middle)", new Character((char)253));
-        map.put("large right brace (top)", new Character((char)252));
-        map.put("large right bracket (bottom)", new Character((char)251));
-        map.put("large right bracket (extender)", new Character((char)250));
-        map.put("large right bracket (top)", new Character((char)249));
-        map.put("large right parenthesis (bottom)", new Character((char)248));
-        map.put("large right parenthesis (extender)", new Character((char)247));
-        map.put("large right parenthesis (top)", new Character((char)246));
-        map.put("larr", new Character((char)172));
-        map.put("le", new Character((char)163));
-        map.put("lowast", new Character((char)42));
-        map.put("loz", new Character((char)224));
-        map.put("minus", new Character((char)45));
-        map.put("mu", new Character((char)109));
-        map.put("nabla", new Character((char)209));
-        map.put("ne", new Character((char)185));
-        map.put("not", new Character((char)216));
-        map.put("notin", new Character((char)207));
-        map.put("nsub", new Character((char)203));
-        map.put("nu", new Character((char)110));
-        map.put("omega", new Character((char)119));
-        map.put("omicron", new Character((char)111));
-        map.put("oplus", new Character((char)197));
-        map.put("or", new Character((char)218));
-        map.put("otimes", new Character((char)196));
-        map.put("part", new Character((char)182));
-        map.put("perp", new Character((char)94));
-        map.put("phi", new Character((char)102));
-        map.put("pi", new Character((char)112));
-        map.put("piv", new Character((char)118));
-        map.put("plusmn", new Character((char)177));
-        map.put("prime", new Character((char)162));
-        map.put("prod", new Character((char)213));
-        map.put("prop", new Character((char)181));
-        map.put("psi", new Character((char)121));
-        map.put("rArr", new Character((char)222));
-        map.put("radic", new Character((char)214));
-        map.put("radical extender", new Character((char)96));
-        map.put("rang", new Character((char)241));
-        map.put("rarr", new Character((char)174));
-        map.put("real", new Character((char)194));
-        map.put("reg", new Character((char)210));
-        map.put("rho", new Character((char)114));
-        map.put("sdot", new Character((char)215));
-        map.put("sigma", new Character((char)115));
-        map.put("sigmaf", new Character((char)86));
-        map.put("sim", new Character((char)126));
-        map.put("spades", new Character((char)170));
-        map.put("sub", new Character((char)204));
-        map.put("sube", new Character((char)205));
-        map.put("sum", new Character((char)229));
-        map.put("sup", new Character((char)201));
-        map.put("supe", new Character((char)202));
-        map.put("tau", new Character((char)116));
-        map.put("there4", new Character((char)92));
-        map.put("theta", new Character((char)113));
-        map.put("thetasym", new Character((char)74));
-        map.put("times", new Character((char)180));
-        map.put("trade", new Character((char)212));
-        map.put("uArr", new Character((char)221));
-        map.put("uarr", new Character((char)173));
-        map.put("upsih", new Character((char)161));
-        map.put("upsilon", new Character((char)117));
-        map.put("vertical arrow extender", new Character((char)189));
-        map.put("weierp", new Character((char)195));
-        map.put("xi", new Character((char)120));
-        map.put("zeta", new Character((char)122));
+        map.put("169", Character.valueOf((char)227));
+        map.put("172", Character.valueOf((char)216));
+        map.put("174", Character.valueOf((char)210));
+        map.put("177", Character.valueOf((char)177));
+        map.put("215", Character.valueOf((char)180));
+        map.put("247", Character.valueOf((char)184));
+        map.put("8230", Character.valueOf((char)188));
+        map.put("8242", Character.valueOf((char)162));
+        map.put("8243", Character.valueOf((char)178));
+        map.put("8260", Character.valueOf((char)164));
+        map.put("8364", Character.valueOf((char)240));
+        map.put("8465", Character.valueOf((char)193));
+        map.put("8472", Character.valueOf((char)195));
+        map.put("8476", Character.valueOf((char)194));
+        map.put("8482", Character.valueOf((char)212));
+        map.put("8501", Character.valueOf((char)192));
+        map.put("8592", Character.valueOf((char)172));
+        map.put("8593", Character.valueOf((char)173));
+        map.put("8594", Character.valueOf((char)174));
+        map.put("8595", Character.valueOf((char)175));
+        map.put("8596", Character.valueOf((char)171));
+        map.put("8629", Character.valueOf((char)191));
+        map.put("8656", Character.valueOf((char)220));
+        map.put("8657", Character.valueOf((char)221));
+        map.put("8658", Character.valueOf((char)222));
+        map.put("8659", Character.valueOf((char)223));
+        map.put("8660", Character.valueOf((char)219));
+        map.put("8704", Character.valueOf((char)34));
+        map.put("8706", Character.valueOf((char)182));
+        map.put("8707", Character.valueOf((char)36));
+        map.put("8709", Character.valueOf((char)198));
+        map.put("8711", Character.valueOf((char)209));
+        map.put("8712", Character.valueOf((char)206));
+        map.put("8713", Character.valueOf((char)207));
+        map.put("8717", Character.valueOf((char)39));
+        map.put("8719", Character.valueOf((char)213));
+        map.put("8721", Character.valueOf((char)229));
+        map.put("8722", Character.valueOf((char)45));
+        map.put("8727", Character.valueOf((char)42));
+        map.put("8729", Character.valueOf((char)183));
+        map.put("8730", Character.valueOf((char)214));
+        map.put("8733", Character.valueOf((char)181));
+        map.put("8734", Character.valueOf((char)165));
+        map.put("8736", Character.valueOf((char)208));
+        map.put("8743", Character.valueOf((char)217));
+        map.put("8744", Character.valueOf((char)218));
+        map.put("8745", Character.valueOf((char)199));
+        map.put("8746", Character.valueOf((char)200));
+        map.put("8747", Character.valueOf((char)242));
+        map.put("8756", Character.valueOf((char)92));
+        map.put("8764", Character.valueOf((char)126));
+        map.put("8773", Character.valueOf((char)64));
+        map.put("8776", Character.valueOf((char)187));
+        map.put("8800", Character.valueOf((char)185));
+        map.put("8801", Character.valueOf((char)186));
+        map.put("8804", Character.valueOf((char)163));
+        map.put("8805", Character.valueOf((char)179));
+        map.put("8834", Character.valueOf((char)204));
+        map.put("8835", Character.valueOf((char)201));
+        map.put("8836", Character.valueOf((char)203));
+        map.put("8838", Character.valueOf((char)205));
+        map.put("8839", Character.valueOf((char)202));
+        map.put("8853", Character.valueOf((char)197));
+        map.put("8855", Character.valueOf((char)196));
+        map.put("8869", Character.valueOf((char)94));
+        map.put("8901", Character.valueOf((char)215));
+        map.put("8992", Character.valueOf((char)243));
+        map.put("8993", Character.valueOf((char)245));
+        map.put("9001", Character.valueOf((char)225));
+        map.put("9002", Character.valueOf((char)241));
+        map.put("913", Character.valueOf((char)65));
+        map.put("914", Character.valueOf((char)66));
+        map.put("915", Character.valueOf((char)71));
+        map.put("916", Character.valueOf((char)68));
+        map.put("917", Character.valueOf((char)69));
+        map.put("918", Character.valueOf((char)90));
+        map.put("919", Character.valueOf((char)72));
+        map.put("920", Character.valueOf((char)81));
+        map.put("921", Character.valueOf((char)73));
+        map.put("922", Character.valueOf((char)75));
+        map.put("923", Character.valueOf((char)76));
+        map.put("924", Character.valueOf((char)77));
+        map.put("925", Character.valueOf((char)78));
+        map.put("926", Character.valueOf((char)88));
+        map.put("927", Character.valueOf((char)79));
+        map.put("928", Character.valueOf((char)80));
+        map.put("929", Character.valueOf((char)82));
+        map.put("931", Character.valueOf((char)83));
+        map.put("932", Character.valueOf((char)84));
+        map.put("933", Character.valueOf((char)85));
+        map.put("934", Character.valueOf((char)70));
+        map.put("935", Character.valueOf((char)67));
+        map.put("936", Character.valueOf((char)89));
+        map.put("937", Character.valueOf((char)87));
+        map.put("945", Character.valueOf((char)97));
+        map.put("946", Character.valueOf((char)98));
+        map.put("947", Character.valueOf((char)103));
+        map.put("948", Character.valueOf((char)100));
+        map.put("949", Character.valueOf((char)101));
+        map.put("950", Character.valueOf((char)122));
+        map.put("951", Character.valueOf((char)104));
+        map.put("952", Character.valueOf((char)113));
+        map.put("953", Character.valueOf((char)105));
+        map.put("954", Character.valueOf((char)107));
+        map.put("955", Character.valueOf((char)108));
+        map.put("956", Character.valueOf((char)109));
+        map.put("957", Character.valueOf((char)110));
+        map.put("958", Character.valueOf((char)120));
+        map.put("959", Character.valueOf((char)111));
+        map.put("960", Character.valueOf((char)112));
+        map.put("961", Character.valueOf((char)114));
+        map.put("962", Character.valueOf((char)86));
+        map.put("963", Character.valueOf((char)115));
+        map.put("964", Character.valueOf((char)116));
+        map.put("965", Character.valueOf((char)117));
+        map.put("966", Character.valueOf((char)102));
+        map.put("967", Character.valueOf((char)99));
+        map.put("9674", Character.valueOf((char)224));
+        map.put("968", Character.valueOf((char)121));
+        map.put("969", Character.valueOf((char)119));
+        map.put("977", Character.valueOf((char)74));
+        map.put("978", Character.valueOf((char)161));
+        map.put("981", Character.valueOf((char)106));
+        map.put("982", Character.valueOf((char)118));
+        map.put("9824", Character.valueOf((char)170));
+        map.put("9827", Character.valueOf((char)167));
+        map.put("9829", Character.valueOf((char)169));
+        map.put("9830", Character.valueOf((char)168));
+        map.put("Alpha", Character.valueOf((char)65));
+        map.put("Beta", Character.valueOf((char)66));
+        map.put("Chi", Character.valueOf((char)67));
+        map.put("Delta", Character.valueOf((char)68));
+        map.put("Epsilon", Character.valueOf((char)69));
+        map.put("Eta", Character.valueOf((char)72));
+        map.put("Gamma", Character.valueOf((char)71));
+        map.put("Iota", Character.valueOf((char)73));
+        map.put("Kappa", Character.valueOf((char)75));
+        map.put("Lambda", Character.valueOf((char)76));
+        map.put("Mu", Character.valueOf((char)77));
+        map.put("Nu", Character.valueOf((char)78));
+        map.put("Omega", Character.valueOf((char)87));
+        map.put("Omicron", Character.valueOf((char)79));
+        map.put("Phi", Character.valueOf((char)70));
+        map.put("Pi", Character.valueOf((char)80));
+        map.put("Prime", Character.valueOf((char)178));
+        map.put("Psi", Character.valueOf((char)89));
+        map.put("Rho", Character.valueOf((char)82));
+        map.put("Sigma", Character.valueOf((char)83));
+        map.put("Tau", Character.valueOf((char)84));
+        map.put("Theta", Character.valueOf((char)81));
+        map.put("Upsilon", Character.valueOf((char)85));
+        map.put("Xi", Character.valueOf((char)88));
+        map.put("Zeta", Character.valueOf((char)90));
+        map.put("alefsym", Character.valueOf((char)192));
+        map.put("alpha", Character.valueOf((char)97));
+        map.put("and", Character.valueOf((char)217));
+        map.put("ang", Character.valueOf((char)208));
+        map.put("asymp", Character.valueOf((char)187));
+        map.put("beta", Character.valueOf((char)98));
+        map.put("cap", Character.valueOf((char)199));
+        map.put("chi", Character.valueOf((char)99));
+        map.put("clubs", Character.valueOf((char)167));
+        map.put("cong", Character.valueOf((char)64));
+        map.put("copy", Character.valueOf((char)211));
+        map.put("crarr", Character.valueOf((char)191));
+        map.put("cup", Character.valueOf((char)200));
+        map.put("dArr", Character.valueOf((char)223));
+        map.put("darr", Character.valueOf((char)175));
+        map.put("delta", Character.valueOf((char)100));
+        map.put("diams", Character.valueOf((char)168));
+        map.put("divide", Character.valueOf((char)184));
+        map.put("empty", Character.valueOf((char)198));
+        map.put("epsilon", Character.valueOf((char)101));
+        map.put("equiv", Character.valueOf((char)186));
+        map.put("eta", Character.valueOf((char)104));
+        map.put("euro", Character.valueOf((char)240));
+        map.put("exist", Character.valueOf((char)36));
+        map.put("forall", Character.valueOf((char)34));
+        map.put("frasl", Character.valueOf((char)164));
+        map.put("gamma", Character.valueOf((char)103));
+        map.put("ge", Character.valueOf((char)179));
+        map.put("hArr", Character.valueOf((char)219));
+        map.put("harr", Character.valueOf((char)171));
+        map.put("hearts", Character.valueOf((char)169));
+        map.put("hellip", Character.valueOf((char)188));
+        map.put("horizontal arrow extender", Character.valueOf((char)190));
+        map.put("image", Character.valueOf((char)193));
+        map.put("infin", Character.valueOf((char)165));
+        map.put("int", Character.valueOf((char)242));
+        map.put("iota", Character.valueOf((char)105));
+        map.put("isin", Character.valueOf((char)206));
+        map.put("kappa", Character.valueOf((char)107));
+        map.put("lArr", Character.valueOf((char)220));
+        map.put("lambda", Character.valueOf((char)108));
+        map.put("lang", Character.valueOf((char)225));
+        map.put("large brace extender", Character.valueOf((char)239));
+        map.put("large integral extender", Character.valueOf((char)244));
+        map.put("large left brace (bottom)", Character.valueOf((char)238));
+        map.put("large left brace (middle)", Character.valueOf((char)237));
+        map.put("large left brace (top)", Character.valueOf((char)236));
+        map.put("large left bracket (bottom)", Character.valueOf((char)235));
+        map.put("large left bracket (extender)", Character.valueOf((char)234));
+        map.put("large left bracket (top)", Character.valueOf((char)233));
+        map.put("large left parenthesis (bottom)", Character.valueOf((char)232));
+        map.put("large left parenthesis (extender)", Character.valueOf((char)231));
+        map.put("large left parenthesis (top)", Character.valueOf((char)230));
+        map.put("large right brace (bottom)", Character.valueOf((char)254));
+        map.put("large right brace (middle)", Character.valueOf((char)253));
+        map.put("large right brace (top)", Character.valueOf((char)252));
+        map.put("large right bracket (bottom)", Character.valueOf((char)251));
+        map.put("large right bracket (extender)", Character.valueOf((char)250));
+        map.put("large right bracket (top)", Character.valueOf((char)249));
+        map.put("large right parenthesis (bottom)", Character.valueOf((char)248));
+        map.put("large right parenthesis (extender)", Character.valueOf((char)247));
+        map.put("large right parenthesis (top)", Character.valueOf((char)246));
+        map.put("larr", Character.valueOf((char)172));
+        map.put("le", Character.valueOf((char)163));
+        map.put("lowast", Character.valueOf((char)42));
+        map.put("loz", Character.valueOf((char)224));
+        map.put("minus", Character.valueOf((char)45));
+        map.put("mu", Character.valueOf((char)109));
+        map.put("nabla", Character.valueOf((char)209));
+        map.put("ne", Character.valueOf((char)185));
+        map.put("not", Character.valueOf((char)216));
+        map.put("notin", Character.valueOf((char)207));
+        map.put("nsub", Character.valueOf((char)203));
+        map.put("nu", Character.valueOf((char)110));
+        map.put("omega", Character.valueOf((char)119));
+        map.put("omicron", Character.valueOf((char)111));
+        map.put("oplus", Character.valueOf((char)197));
+        map.put("or", Character.valueOf((char)218));
+        map.put("otimes", Character.valueOf((char)196));
+        map.put("part", Character.valueOf((char)182));
+        map.put("perp", Character.valueOf((char)94));
+        map.put("phi", Character.valueOf((char)102));
+        map.put("pi", Character.valueOf((char)112));
+        map.put("piv", Character.valueOf((char)118));
+        map.put("plusmn", Character.valueOf((char)177));
+        map.put("prime", Character.valueOf((char)162));
+        map.put("prod", Character.valueOf((char)213));
+        map.put("prop", Character.valueOf((char)181));
+        map.put("psi", Character.valueOf((char)121));
+        map.put("rArr", Character.valueOf((char)222));
+        map.put("radic", Character.valueOf((char)214));
+        map.put("radical extender", Character.valueOf((char)96));
+        map.put("rang", Character.valueOf((char)241));
+        map.put("rarr", Character.valueOf((char)174));
+        map.put("real", Character.valueOf((char)194));
+        map.put("reg", Character.valueOf((char)210));
+        map.put("rho", Character.valueOf((char)114));
+        map.put("sdot", Character.valueOf((char)215));
+        map.put("sigma", Character.valueOf((char)115));
+        map.put("sigmaf", Character.valueOf((char)86));
+        map.put("sim", Character.valueOf((char)126));
+        map.put("spades", Character.valueOf((char)170));
+        map.put("sub", Character.valueOf((char)204));
+        map.put("sube", Character.valueOf((char)205));
+        map.put("sum", Character.valueOf((char)229));
+        map.put("sup", Character.valueOf((char)201));
+        map.put("supe", Character.valueOf((char)202));
+        map.put("tau", Character.valueOf((char)116));
+        map.put("there4", Character.valueOf((char)92));
+        map.put("theta", Character.valueOf((char)113));
+        map.put("thetasym", Character.valueOf((char)74));
+        map.put("times", Character.valueOf((char)180));
+        map.put("trade", Character.valueOf((char)212));
+        map.put("uArr", Character.valueOf((char)221));
+        map.put("uarr", Character.valueOf((char)173));
+        map.put("upsih", Character.valueOf((char)161));
+        map.put("upsilon", Character.valueOf((char)117));
+        map.put("vertical arrow extender", Character.valueOf((char)189));
+        map.put("weierp", Character.valueOf((char)195));
+        map.put("xi", Character.valueOf((char)120));
+        map.put("zeta", Character.valueOf((char)122));
     }
     
     /**
--- a/core/com/lowagie/text/xml/simpleparser/EntitiesToUnicode.java
+++ b/core/com/lowagie/text/xml/simpleparser/EntitiesToUnicode.java
@@ -62,301 +62,301 @@
      */
     public static final HashMap map = new HashMap();
     static {
-        map.put("nbsp", new Character('\u00a0')); // no-break space = non-breaking space, U+00A0 ISOnum
-        map.put("iexcl", new Character('\u00a1')); // inverted exclamation mark, U+00A1 ISOnum
-        map.put("cent", new Character('\u00a2')); // cent sign, U+00A2 ISOnum
-        map.put("pound", new Character('\u00a3')); // pound sign, U+00A3 ISOnum
-        map.put("curren", new Character('\u00a4')); // currency sign, U+00A4 ISOnum
-        map.put("yen", new Character('\u00a5')); // yen sign = yuan sign, U+00A5 ISOnum
-        map.put("brvbar", new Character('\u00a6')); // broken bar = broken vertical bar, U+00A6 ISOnum
-        map.put("sect", new Character('\u00a7')); // section sign, U+00A7 ISOnum
-        map.put("uml", new Character('\u00a8')); // diaeresis = spacing diaeresis, U+00A8 ISOdia
-        map.put("copy", new Character('\u00a9')); // copyright sign, U+00A9 ISOnum
-        map.put("ordf", new Character('\u00aa')); // feminine ordinal indicator, U+00AA ISOnum
-        map.put("laquo", new Character('\u00ab')); // left-pointing double angle quotation mark = left pointing guillemet, U+00AB ISOnum
-        map.put("not", new Character('\u00ac')); // not sign, U+00AC ISOnum
-        map.put("shy", new Character('\u00ad')); // soft hyphen = discretionary hyphen, U+00AD ISOnum
-        map.put("reg", new Character('\u00ae')); // registered sign = registered trade mark sign, U+00AE ISOnum
-        map.put("macr", new Character('\u00af')); // macron = spacing macron = overline = APL overbar, U+00AF ISOdia
-        map.put("deg", new Character('\u00b0')); // degree sign, U+00B0 ISOnum
-        map.put("plusmn", new Character('\u00b1')); // plus-minus sign = plus-or-minus sign, U+00B1 ISOnum
-        map.put("sup2", new Character('\u00b2')); // superscript two = superscript digit two = squared, U+00B2 ISOnum
-        map.put("sup3", new Character('\u00b3')); // superscript three = superscript digit three = cubed, U+00B3 ISOnum
-        map.put("acute", new Character('\u00b4')); // acute accent = spacing acute, U+00B4 ISOdia
-        map.put("micro", new Character('\u00b5')); // micro sign, U+00B5 ISOnum
-        map.put("para", new Character('\u00b6')); // pilcrow sign = paragraph sign, U+00B6 ISOnum
-        map.put("middot", new Character('\u00b7')); // middle dot = Georgian comma = Greek middle dot, U+00B7 ISOnum
-        map.put("cedil", new Character('\u00b8')); // cedilla = spacing cedilla, U+00B8 ISOdia
-        map.put("sup1", new Character('\u00b9')); // superscript one = superscript digit one, U+00B9 ISOnum
-        map.put("ordm", new Character('\u00ba')); // masculine ordinal indicator, U+00BA ISOnum
-        map.put("raquo", new Character('\u00bb')); // right-pointing double angle quotation mark = right pointing guillemet, U+00BB ISOnum
-        map.put("frac14", new Character('\u00bc')); // vulgar fraction one quarter = fraction one quarter, U+00BC ISOnum
-        map.put("frac12", new Character('\u00bd')); // vulgar fraction one half = fraction one half, U+00BD ISOnum
-        map.put("frac34", new Character('\u00be')); // vulgar fraction three quarters = fraction three quarters, U+00BE ISOnum
-        map.put("iquest", new Character('\u00bf')); // inverted question mark = turned question mark, U+00BF ISOnum
-        map.put("Agrave", new Character('\u00c0')); // latin capital letter A with grave = latin capital letter A grave, U+00C0 ISOlat1
-        map.put("Aacute", new Character('\u00c1')); // latin capital letter A with acute, U+00C1 ISOlat1
-        map.put("Acirc", new Character('\u00c2')); // latin capital letter A with circumflex, U+00C2 ISOlat1
-        map.put("Atilde", new Character('\u00c3')); // latin capital letter A with tilde, U+00C3 ISOlat1
-        map.put("Auml", new Character('\u00c4')); // latin capital letter A with diaeresis, U+00C4 ISOlat1
-        map.put("Aring", new Character('\u00c5')); // latin capital letter A with ring above = latin capital letter A ring, U+00C5 ISOlat1
-        map.put("AElig", new Character('\u00c6')); // latin capital letter AE = latin capital ligature AE, U+00C6 ISOlat1
-        map.put("Ccedil", new Character('\u00c7')); // latin capital letter C with cedilla, U+00C7 ISOlat1
-        map.put("Egrave", new Character('\u00c8')); // latin capital letter E with grave, U+00C8 ISOlat1
-        map.put("Eacute", new Character('\u00c9')); // latin capital letter E with acute, U+00C9 ISOlat1
-        map.put("Ecirc", new Character('\u00ca')); // latin capital letter E with circumflex, U+00CA ISOlat1
-        map.put("Euml", new Character('\u00cb')); // latin capital letter E with diaeresis, U+00CB ISOlat1
-        map.put("Igrave", new Character('\u00cc')); // latin capital letter I with grave, U+00CC ISOlat1
-        map.put("Iacute", new Character('\u00cd')); // latin capital letter I with acute, U+00CD ISOlat1
-        map.put("Icirc", new Character('\u00ce')); // latin capital letter I with circumflex, U+00CE ISOlat1
-        map.put("Iuml", new Character('\u00cf')); // latin capital letter I with diaeresis, U+00CF ISOlat1
-        map.put("ETH", new Character('\u00d0')); // latin capital letter ETH, U+00D0 ISOlat1
-        map.put("Ntilde", new Character('\u00d1')); // latin capital letter N with tilde, U+00D1 ISOlat1
-        map.put("Ograve", new Character('\u00d2')); // latin capital letter O with grave, U+00D2 ISOlat1
-        map.put("Oacute", new Character('\u00d3')); // latin capital letter O with acute, U+00D3 ISOlat1
-        map.put("Ocirc", new Character('\u00d4')); // latin capital letter O with circumflex, U+00D4 ISOlat1
-        map.put("Otilde", new Character('\u00d5')); // latin capital letter O with tilde, U+00D5 ISOlat1
-        map.put("Ouml", new Character('\u00d6')); // latin capital letter O with diaeresis, U+00D6 ISOlat1
-        map.put("times", new Character('\u00d7')); // multiplication sign, U+00D7 ISOnum
-        map.put("Oslash", new Character('\u00d8')); // latin capital letter O with stroke = latin capital letter O slash, U+00D8 ISOlat1
-        map.put("Ugrave", new Character('\u00d9')); // latin capital letter U with grave, U+00D9 ISOlat1
-        map.put("Uacute", new Character('\u00da')); // latin capital letter U with acute, U+00DA ISOlat1
-        map.put("Ucirc", new Character('\u00db')); // latin capital letter U with circumflex, U+00DB ISOlat1
-        map.put("Uuml", new Character('\u00dc')); // latin capital letter U with diaeresis, U+00DC ISOlat1
-        map.put("Yacute", new Character('\u00dd')); // latin capital letter Y with acute, U+00DD ISOlat1
-        map.put("THORN", new Character('\u00de')); // latin capital letter THORN, U+00DE ISOlat1
-        map.put("szlig", new Character('\u00df')); // latin small letter sharp s = ess-zed, U+00DF ISOlat1
-        map.put("agrave", new Character('\u00e0')); // latin small letter a with grave = latin small letter a grave, U+00E0 ISOlat1
-        map.put("aacute", new Character('\u00e1')); // latin small letter a with acute, U+00E1 ISOlat1
-        map.put("acirc", new Character('\u00e2')); // latin small letter a with circumflex, U+00E2 ISOlat1
-        map.put("atilde", new Character('\u00e3')); // latin small letter a with tilde, U+00E3 ISOlat1
-        map.put("auml", new Character('\u00e4')); // latin small letter a with diaeresis, U+00E4 ISOlat1
-        map.put("aring", new Character('\u00e5')); // latin small letter a with ring above = latin small letter a ring, U+00E5 ISOlat1
-        map.put("aelig", new Character('\u00e6')); // latin small letter ae = latin small ligature ae, U+00E6 ISOlat1
-        map.put("ccedil", new Character('\u00e7')); // latin small letter c with cedilla, U+00E7 ISOlat1
-        map.put("egrave", new Character('\u00e8')); // latin small letter e with grave, U+00E8 ISOlat1
-        map.put("eacute", new Character('\u00e9')); // latin small letter e with acute, U+00E9 ISOlat1
-        map.put("ecirc", new Character('\u00ea')); // latin small letter e with circumflex, U+00EA ISOlat1
-        map.put("euml", new Character('\u00eb')); // latin small letter e with diaeresis, U+00EB ISOlat1
-        map.put("igrave", new Character('\u00ec')); // latin small letter i with grave, U+00EC ISOlat1
-        map.put("iacute", new Character('\u00ed')); // latin small letter i with acute, U+00ED ISOlat1
-        map.put("icirc", new Character('\u00ee')); // latin small letter i with circumflex, U+00EE ISOlat1
-        map.put("iuml", new Character('\u00ef')); // latin small letter i with diaeresis, U+00EF ISOlat1
-        map.put("eth", new Character('\u00f0')); // latin small letter eth, U+00F0 ISOlat1
-        map.put("ntilde", new Character('\u00f1')); // latin small letter n with tilde, U+00F1 ISOlat1
-        map.put("ograve", new Character('\u00f2')); // latin small letter o with grave, U+00F2 ISOlat1
-        map.put("oacute", new Character('\u00f3')); // latin small letter o with acute, U+00F3 ISOlat1
-        map.put("ocirc", new Character('\u00f4')); // latin small letter o with circumflex, U+00F4 ISOlat1
-        map.put("otilde", new Character('\u00f5')); // latin small letter o with tilde, U+00F5 ISOlat1
-        map.put("ouml", new Character('\u00f6')); // latin small letter o with diaeresis, U+00F6 ISOlat1
-        map.put("divide", new Character('\u00f7')); // division sign, U+00F7 ISOnum
-        map.put("oslash", new Character('\u00f8')); // latin small letter o with stroke, = latin small letter o slash, U+00F8 ISOlat1
-        map.put("ugrave", new Character('\u00f9')); // latin small letter u with grave, U+00F9 ISOlat1
-        map.put("uacute", new Character('\u00fa')); // latin small letter u with acute, U+00FA ISOlat1
-        map.put("ucirc", new Character('\u00fb')); // latin small letter u with circumflex, U+00FB ISOlat1
-        map.put("uuml", new Character('\u00fc')); // latin small letter u with diaeresis, U+00FC ISOlat1
-        map.put("yacute", new Character('\u00fd')); // latin small letter y with acute, U+00FD ISOlat1
-        map.put("thorn", new Character('\u00fe')); // latin small letter thorn, U+00FE ISOlat1
-        map.put("yuml", new Character('\u00ff')); // latin small letter y with diaeresis, U+00FF ISOlat1
+        map.put("nbsp", Character.valueOf('\u00a0')); // no-break space = non-breaking space, U+00A0 ISOnum
+        map.put("iexcl", Character.valueOf('\u00a1')); // inverted exclamation mark, U+00A1 ISOnum
+        map.put("cent", Character.valueOf('\u00a2')); // cent sign, U+00A2 ISOnum
+        map.put("pound", Character.valueOf('\u00a3')); // pound sign, U+00A3 ISOnum
+        map.put("curren", Character.valueOf('\u00a4')); // currency sign, U+00A4 ISOnum
+        map.put("yen", Character.valueOf('\u00a5')); // yen sign = yuan sign, U+00A5 ISOnum
+        map.put("brvbar", Character.valueOf('\u00a6')); // broken bar = broken vertical bar, U+00A6 ISOnum
+        map.put("sect", Character.valueOf('\u00a7')); // section sign, U+00A7 ISOnum
+        map.put("uml", Character.valueOf('\u00a8')); // diaeresis = spacing diaeresis, U+00A8 ISOdia
+        map.put("copy", Character.valueOf('\u00a9')); // copyright sign, U+00A9 ISOnum
+        map.put("ordf", Character.valueOf('\u00aa')); // feminine ordinal indicator, U+00AA ISOnum
+        map.put("laquo", Character.valueOf('\u00ab')); // left-pointing double angle quotation mark = left pointing guillemet, U+00AB ISOnum
+        map.put("not", Character.valueOf('\u00ac')); // not sign, U+00AC ISOnum
+        map.put("shy", Character.valueOf('\u00ad')); // soft hyphen = discretionary hyphen, U+00AD ISOnum
+        map.put("reg", Character.valueOf('\u00ae')); // registered sign = registered trade mark sign, U+00AE ISOnum
+        map.put("macr", Character.valueOf('\u00af')); // macron = spacing macron = overline = APL overbar, U+00AF ISOdia
+        map.put("deg", Character.valueOf('\u00b0')); // degree sign, U+00B0 ISOnum
+        map.put("plusmn", Character.valueOf('\u00b1')); // plus-minus sign = plus-or-minus sign, U+00B1 ISOnum
+        map.put("sup2", Character.valueOf('\u00b2')); // superscript two = superscript digit two = squared, U+00B2 ISOnum
+        map.put("sup3", Character.valueOf('\u00b3')); // superscript three = superscript digit three = cubed, U+00B3 ISOnum
+        map.put("acute", Character.valueOf('\u00b4')); // acute accent = spacing acute, U+00B4 ISOdia
+        map.put("micro", Character.valueOf('\u00b5')); // micro sign, U+00B5 ISOnum
+        map.put("para", Character.valueOf('\u00b6')); // pilcrow sign = paragraph sign, U+00B6 ISOnum
+        map.put("middot", Character.valueOf('\u00b7')); // middle dot = Georgian comma = Greek middle dot, U+00B7 ISOnum
+        map.put("cedil", Character.valueOf('\u00b8')); // cedilla = spacing cedilla, U+00B8 ISOdia
+        map.put("sup1", Character.valueOf('\u00b9')); // superscript one = superscript digit one, U+00B9 ISOnum
+        map.put("ordm", Character.valueOf('\u00ba')); // masculine ordinal indicator, U+00BA ISOnum
+        map.put("raquo", Character.valueOf('\u00bb')); // right-pointing double angle quotation mark = right pointing guillemet, U+00BB ISOnum
+        map.put("frac14", Character.valueOf('\u00bc')); // vulgar fraction one quarter = fraction one quarter, U+00BC ISOnum
+        map.put("frac12", Character.valueOf('\u00bd')); // vulgar fraction one half = fraction one half, U+00BD ISOnum
+        map.put("frac34", Character.valueOf('\u00be')); // vulgar fraction three quarters = fraction three quarters, U+00BE ISOnum
+        map.put("iquest", Character.valueOf('\u00bf')); // inverted question mark = turned question mark, U+00BF ISOnum
+        map.put("Agrave", Character.valueOf('\u00c0')); // latin capital letter A with grave = latin capital letter A grave, U+00C0 ISOlat1
+        map.put("Aacute", Character.valueOf('\u00c1')); // latin capital letter A with acute, U+00C1 ISOlat1
+        map.put("Acirc", Character.valueOf('\u00c2')); // latin capital letter A with circumflex, U+00C2 ISOlat1
+        map.put("Atilde", Character.valueOf('\u00c3')); // latin capital letter A with tilde, U+00C3 ISOlat1
+        map.put("Auml", Character.valueOf('\u00c4')); // latin capital letter A with diaeresis, U+00C4 ISOlat1
+        map.put("Aring", Character.valueOf('\u00c5')); // latin capital letter A with ring above = latin capital letter A ring, U+00C5 ISOlat1
+        map.put("AElig", Character.valueOf('\u00c6')); // latin capital letter AE = latin capital ligature AE, U+00C6 ISOlat1
+        map.put("Ccedil", Character.valueOf('\u00c7')); // latin capital letter C with cedilla, U+00C7 ISOlat1
+        map.put("Egrave", Character.valueOf('\u00c8')); // latin capital letter E with grave, U+00C8 ISOlat1
+        map.put("Eacute", Character.valueOf('\u00c9')); // latin capital letter E with acute, U+00C9 ISOlat1
+        map.put("Ecirc", Character.valueOf('\u00ca')); // latin capital letter E with circumflex, U+00CA ISOlat1
+        map.put("Euml", Character.valueOf('\u00cb')); // latin capital letter E with diaeresis, U+00CB ISOlat1
+        map.put("Igrave", Character.valueOf('\u00cc')); // latin capital letter I with grave, U+00CC ISOlat1
+        map.put("Iacute", Character.valueOf('\u00cd')); // latin capital letter I with acute, U+00CD ISOlat1
+        map.put("Icirc", Character.valueOf('\u00ce')); // latin capital letter I with circumflex, U+00CE ISOlat1
+        map.put("Iuml", Character.valueOf('\u00cf')); // latin capital letter I with diaeresis, U+00CF ISOlat1
+        map.put("ETH", Character.valueOf('\u00d0')); // latin capital letter ETH, U+00D0 ISOlat1
+        map.put("Ntilde", Character.valueOf('\u00d1')); // latin capital letter N with tilde, U+00D1 ISOlat1
+        map.put("Ograve", Character.valueOf('\u00d2')); // latin capital letter O with grave, U+00D2 ISOlat1
+        map.put("Oacute", Character.valueOf('\u00d3')); // latin capital letter O with acute, U+00D3 ISOlat1
+        map.put("Ocirc", Character.valueOf('\u00d4')); // latin capital letter O with circumflex, U+00D4 ISOlat1
+        map.put("Otilde", Character.valueOf('\u00d5')); // latin capital letter O with tilde, U+00D5 ISOlat1
+        map.put("Ouml", Character.valueOf('\u00d6')); // latin capital letter O with diaeresis, U+00D6 ISOlat1
+        map.put("times", Character.valueOf('\u00d7')); // multiplication sign, U+00D7 ISOnum
+        map.put("Oslash", Character.valueOf('\u00d8')); // latin capital letter O with stroke = latin capital letter O slash, U+00D8 ISOlat1
+        map.put("Ugrave", Character.valueOf('\u00d9')); // latin capital letter U with grave, U+00D9 ISOlat1
+        map.put("Uacute", Character.valueOf('\u00da')); // latin capital letter U with acute, U+00DA ISOlat1
+        map.put("Ucirc", Character.valueOf('\u00db')); // latin capital letter U with circumflex, U+00DB ISOlat1
+        map.put("Uuml", Character.valueOf('\u00dc')); // latin capital letter U with diaeresis, U+00DC ISOlat1
+        map.put("Yacute", Character.valueOf('\u00dd')); // latin capital letter Y with acute, U+00DD ISOlat1
+        map.put("THORN", Character.valueOf('\u00de')); // latin capital letter THORN, U+00DE ISOlat1
+        map.put("szlig", Character.valueOf('\u00df')); // latin small letter sharp s = ess-zed, U+00DF ISOlat1
+        map.put("agrave", Character.valueOf('\u00e0')); // latin small letter a with grave = latin small letter a grave, U+00E0 ISOlat1
+        map.put("aacute", Character.valueOf('\u00e1')); // latin small letter a with acute, U+00E1 ISOlat1
+        map.put("acirc", Character.valueOf('\u00e2')); // latin small letter a with circumflex, U+00E2 ISOlat1
+        map.put("atilde", Character.valueOf('\u00e3')); // latin small letter a with tilde, U+00E3 ISOlat1
+        map.put("auml", Character.valueOf('\u00e4')); // latin small letter a with diaeresis, U+00E4 ISOlat1
+        map.put("aring", Character.valueOf('\u00e5')); // latin small letter a with ring above = latin small letter a ring, U+00E5 ISOlat1
+        map.put("aelig", Character.valueOf('\u00e6')); // latin small letter ae = latin small ligature ae, U+00E6 ISOlat1
+        map.put("ccedil", Character.valueOf('\u00e7')); // latin small letter c with cedilla, U+00E7 ISOlat1
+        map.put("egrave", Character.valueOf('\u00e8')); // latin small letter e with grave, U+00E8 ISOlat1
+        map.put("eacute", Character.valueOf('\u00e9')); // latin small letter e with acute, U+00E9 ISOlat1
+        map.put("ecirc", Character.valueOf('\u00ea')); // latin small letter e with circumflex, U+00EA ISOlat1
+        map.put("euml", Character.valueOf('\u00eb')); // latin small letter e with diaeresis, U+00EB ISOlat1
+        map.put("igrave", Character.valueOf('\u00ec')); // latin small letter i with grave, U+00EC ISOlat1
+        map.put("iacute", Character.valueOf('\u00ed')); // latin small letter i with acute, U+00ED ISOlat1
+        map.put("icirc", Character.valueOf('\u00ee')); // latin small letter i with circumflex, U+00EE ISOlat1
+        map.put("iuml", Character.valueOf('\u00ef')); // latin small letter i with diaeresis, U+00EF ISOlat1
+        map.put("eth", Character.valueOf('\u00f0')); // latin small letter eth, U+00F0 ISOlat1
+        map.put("ntilde", Character.valueOf('\u00f1')); // latin small letter n with tilde, U+00F1 ISOlat1
+        map.put("ograve", Character.valueOf('\u00f2')); // latin small letter o with grave, U+00F2 ISOlat1
+        map.put("oacute", Character.valueOf('\u00f3')); // latin small letter o with acute, U+00F3 ISOlat1
+        map.put("ocirc", Character.valueOf('\u00f4')); // latin small letter o with circumflex, U+00F4 ISOlat1
+        map.put("otilde", Character.valueOf('\u00f5')); // latin small letter o with tilde, U+00F5 ISOlat1
+        map.put("ouml", Character.valueOf('\u00f6')); // latin small letter o with diaeresis, U+00F6 ISOlat1
+        map.put("divide", Character.valueOf('\u00f7')); // division sign, U+00F7 ISOnum
+        map.put("oslash", Character.valueOf('\u00f8')); // latin small letter o with stroke, = latin small letter o slash, U+00F8 ISOlat1
+        map.put("ugrave", Character.valueOf('\u00f9')); // latin small letter u with grave, U+00F9 ISOlat1
+        map.put("uacute", Character.valueOf('\u00fa')); // latin small letter u with acute, U+00FA ISOlat1
+        map.put("ucirc", Character.valueOf('\u00fb')); // latin small letter u with circumflex, U+00FB ISOlat1
+        map.put("uuml", Character.valueOf('\u00fc')); // latin small letter u with diaeresis, U+00FC ISOlat1
+        map.put("yacute", Character.valueOf('\u00fd')); // latin small letter y with acute, U+00FD ISOlat1
+        map.put("thorn", Character.valueOf('\u00fe')); // latin small letter thorn, U+00FE ISOlat1
+        map.put("yuml", Character.valueOf('\u00ff')); // latin small letter y with diaeresis, U+00FF ISOlat1
         // Latin Extended-B
-        map.put("fnof", new Character('\u0192')); // latin small f with hook = function = florin, U+0192 ISOtech
+        map.put("fnof", Character.valueOf('\u0192')); // latin small f with hook = function = florin, U+0192 ISOtech
         // Greek
-        map.put("Alpha", new Character('\u0391')); // greek capital letter alpha, U+0391
-        map.put("Beta", new Character('\u0392')); // greek capital letter beta, U+0392
-        map.put("Gamma", new Character('\u0393')); // greek capital letter gamma, U+0393 ISOgrk3
-        map.put("Delta", new Character('\u0394')); // greek capital letter delta, U+0394 ISOgrk3
-        map.put("Epsilon", new Character('\u0395')); // greek capital letter epsilon, U+0395
-        map.put("Zeta", new Character('\u0396')); // greek capital letter zeta, U+0396
-        map.put("Eta", new Character('\u0397')); // greek capital letter eta, U+0397
-        map.put("Theta", new Character('\u0398')); // greek capital letter theta, U+0398 ISOgrk3
-        map.put("Iota", new Character('\u0399')); // greek capital letter iota, U+0399
-        map.put("Kappa", new Character('\u039a')); // greek capital letter kappa, U+039A
-        map.put("Lambda", new Character('\u039b')); // greek capital letter lambda, U+039B ISOgrk3
-        map.put("Mu", new Character('\u039c')); // greek capital letter mu, U+039C
-        map.put("Nu", new Character('\u039d')); // greek capital letter nu, U+039D
-        map.put("Xi", new Character('\u039e')); // greek capital letter xi, U+039E ISOgrk3
-        map.put("Omicron", new Character('\u039f')); // greek capital letter omicron, U+039F
-        map.put("Pi", new Character('\u03a0')); // greek capital letter pi, U+03A0 ISOgrk3
-        map.put("Rho", new Character('\u03a1')); // greek capital letter rho, U+03A1
+        map.put("Alpha", Character.valueOf('\u0391')); // greek capital letter alpha, U+0391
+        map.put("Beta", Character.valueOf('\u0392')); // greek capital letter beta, U+0392
+        map.put("Gamma", Character.valueOf('\u0393')); // greek capital letter gamma, U+0393 ISOgrk3
+        map.put("Delta", Character.valueOf('\u0394')); // greek capital letter delta, U+0394 ISOgrk3
+        map.put("Epsilon", Character.valueOf('\u0395')); // greek capital letter epsilon, U+0395
+        map.put("Zeta", Character.valueOf('\u0396')); // greek capital letter zeta, U+0396
+        map.put("Eta", Character.valueOf('\u0397')); // greek capital letter eta, U+0397
+        map.put("Theta", Character.valueOf('\u0398')); // greek capital letter theta, U+0398 ISOgrk3
+        map.put("Iota", Character.valueOf('\u0399')); // greek capital letter iota, U+0399
+        map.put("Kappa", Character.valueOf('\u039a')); // greek capital letter kappa, U+039A
+        map.put("Lambda", Character.valueOf('\u039b')); // greek capital letter lambda, U+039B ISOgrk3
+        map.put("Mu", Character.valueOf('\u039c')); // greek capital letter mu, U+039C
+        map.put("Nu", Character.valueOf('\u039d')); // greek capital letter nu, U+039D
+        map.put("Xi", Character.valueOf('\u039e')); // greek capital letter xi, U+039E ISOgrk3
+        map.put("Omicron", Character.valueOf('\u039f')); // greek capital letter omicron, U+039F
+        map.put("Pi", Character.valueOf('\u03a0')); // greek capital letter pi, U+03A0 ISOgrk3
+        map.put("Rho", Character.valueOf('\u03a1')); // greek capital letter rho, U+03A1
         // there is no Sigmaf, and no U+03A2 character either
-        map.put("Sigma", new Character('\u03a3')); // greek capital letter sigma, U+03A3 ISOgrk3
-        map.put("Tau", new Character('\u03a4')); // greek capital letter tau, U+03A4
-        map.put("Upsilon", new Character('\u03a5')); // greek capital letter upsilon, U+03A5 ISOgrk3
-        map.put("Phi", new Character('\u03a6')); // greek capital letter phi, U+03A6 ISOgrk3
-        map.put("Chi", new Character('\u03a7')); // greek capital letter chi, U+03A7
-        map.put("Psi", new Character('\u03a8')); // greek capital letter psi, U+03A8 ISOgrk3
-        map.put("Omega", new Character('\u03a9')); // greek capital letter omega, U+03A9 ISOgrk3
-        map.put("alpha", new Character('\u03b1')); // greek small letter alpha, U+03B1 ISOgrk3
-        map.put("beta", new Character('\u03b2')); // greek small letter beta, U+03B2 ISOgrk3
-        map.put("gamma", new Character('\u03b3')); // greek small letter gamma, U+03B3 ISOgrk3
-        map.put("delta", new Character('\u03b4')); // greek small letter delta, U+03B4 ISOgrk3
-        map.put("epsilon", new Character('\u03b5')); // greek small letter epsilon, U+03B5 ISOgrk3
-        map.put("zeta", new Character('\u03b6')); // greek small letter zeta, U+03B6 ISOgrk3
-        map.put("eta", new Character('\u03b7')); // greek small letter eta, U+03B7 ISOgrk3
-        map.put("theta", new Character('\u03b8')); // greek small letter theta, U+03B8 ISOgrk3
-        map.put("iota", new Character('\u03b9')); // greek small letter iota, U+03B9 ISOgrk3
-        map.put("kappa", new Character('\u03ba')); // greek small letter kappa, U+03BA ISOgrk3
-        map.put("lambda", new Character('\u03bb')); // greek small letter lambda, U+03BB ISOgrk3
-        map.put("mu", new Character('\u03bc')); // greek small letter mu, U+03BC ISOgrk3
-        map.put("nu", new Character('\u03bd')); // greek small letter nu, U+03BD ISOgrk3
-        map.put("xi", new Character('\u03be')); // greek small letter xi, U+03BE ISOgrk3
-        map.put("omicron", new Character('\u03bf')); // greek small letter omicron, U+03BF NEW
-        map.put("pi", new Character('\u03c0')); // greek small letter pi, U+03C0 ISOgrk3
-        map.put("rho", new Character('\u03c1')); // greek small letter rho, U+03C1 ISOgrk3
-        map.put("sigmaf", new Character('\u03c2')); // greek small letter final sigma, U+03C2 ISOgrk3
-        map.put("sigma", new Character('\u03c3')); // greek small letter sigma, U+03C3 ISOgrk3
-        map.put("tau", new Character('\u03c4')); // greek small letter tau, U+03C4 ISOgrk3
-        map.put("upsilon", new Character('\u03c5')); // greek small letter upsilon, U+03C5 ISOgrk3
-        map.put("phi", new Character('\u03c6')); // greek small letter phi, U+03C6 ISOgrk3
-        map.put("chi", new Character('\u03c7')); // greek small letter chi, U+03C7 ISOgrk3
-        map.put("psi", new Character('\u03c8')); // greek small letter psi, U+03C8 ISOgrk3
-        map.put("omega", new Character('\u03c9')); // greek small letter omega, U+03C9 ISOgrk3
-        map.put("thetasym", new Character('\u03d1')); // greek small letter theta symbol, U+03D1 NEW
-        map.put("upsih", new Character('\u03d2')); // greek upsilon with hook symbol, U+03D2 NEW
-        map.put("piv", new Character('\u03d6')); // greek pi symbol, U+03D6 ISOgrk3
+        map.put("Sigma", Character.valueOf('\u03a3')); // greek capital letter sigma, U+03A3 ISOgrk3
+        map.put("Tau", Character.valueOf('\u03a4')); // greek capital letter tau, U+03A4
+        map.put("Upsilon", Character.valueOf('\u03a5')); // greek capital letter upsilon, U+03A5 ISOgrk3
+        map.put("Phi", Character.valueOf('\u03a6')); // greek capital letter phi, U+03A6 ISOgrk3
+        map.put("Chi", Character.valueOf('\u03a7')); // greek capital letter chi, U+03A7
+        map.put("Psi", Character.valueOf('\u03a8')); // greek capital letter psi, U+03A8 ISOgrk3
+        map.put("Omega", Character.valueOf('\u03a9')); // greek capital letter omega, U+03A9 ISOgrk3
+        map.put("alpha", Character.valueOf('\u03b1')); // greek small letter alpha, U+03B1 ISOgrk3
+        map.put("beta", Character.valueOf('\u03b2')); // greek small letter beta, U+03B2 ISOgrk3
+        map.put("gamma", Character.valueOf('\u03b3')); // greek small letter gamma, U+03B3 ISOgrk3
+        map.put("delta", Character.valueOf('\u03b4')); // greek small letter delta, U+03B4 ISOgrk3
+        map.put("epsilon", Character.valueOf('\u03b5')); // greek small letter epsilon, U+03B5 ISOgrk3
+        map.put("zeta", Character.valueOf('\u03b6')); // greek small letter zeta, U+03B6 ISOgrk3
+        map.put("eta", Character.valueOf('\u03b7')); // greek small letter eta, U+03B7 ISOgrk3
+        map.put("theta", Character.valueOf('\u03b8')); // greek small letter theta, U+03B8 ISOgrk3
+        map.put("iota", Character.valueOf('\u03b9')); // greek small letter iota, U+03B9 ISOgrk3
+        map.put("kappa", Character.valueOf('\u03ba')); // greek small letter kappa, U+03BA ISOgrk3
+        map.put("lambda", Character.valueOf('\u03bb')); // greek small letter lambda, U+03BB ISOgrk3
+        map.put("mu", Character.valueOf('\u03bc')); // greek small letter mu, U+03BC ISOgrk3
+        map.put("nu", Character.valueOf('\u03bd')); // greek small letter nu, U+03BD ISOgrk3
+        map.put("xi", Character.valueOf('\u03be')); // greek small letter xi, U+03BE ISOgrk3
+        map.put("omicron", Character.valueOf('\u03bf')); // greek small letter omicron, U+03BF NEW
+        map.put("pi", Character.valueOf('\u03c0')); // greek small letter pi, U+03C0 ISOgrk3
+        map.put("rho", Character.valueOf('\u03c1')); // greek small letter rho, U+03C1 ISOgrk3
+        map.put("sigmaf", Character.valueOf('\u03c2')); // greek small letter final sigma, U+03C2 ISOgrk3
+        map.put("sigma", Character.valueOf('\u03c3')); // greek small letter sigma, U+03C3 ISOgrk3
+        map.put("tau", Character.valueOf('\u03c4')); // greek small letter tau, U+03C4 ISOgrk3
+        map.put("upsilon", Character.valueOf('\u03c5')); // greek small letter upsilon, U+03C5 ISOgrk3
+        map.put("phi", Character.valueOf('\u03c6')); // greek small letter phi, U+03C6 ISOgrk3
+        map.put("chi", Character.valueOf('\u03c7')); // greek small letter chi, U+03C7 ISOgrk3
+        map.put("psi", Character.valueOf('\u03c8')); // greek small letter psi, U+03C8 ISOgrk3
+        map.put("omega", Character.valueOf('\u03c9')); // greek small letter omega, U+03C9 ISOgrk3
+        map.put("thetasym", Character.valueOf('\u03d1')); // greek small letter theta symbol, U+03D1 NEW
+        map.put("upsih", Character.valueOf('\u03d2')); // greek upsilon with hook symbol, U+03D2 NEW
+        map.put("piv", Character.valueOf('\u03d6')); // greek pi symbol, U+03D6 ISOgrk3
         // General Punctuation
-        map.put("bull", new Character('\u2022')); // bullet = black small circle, U+2022 ISOpub
+        map.put("bull", Character.valueOf('\u2022')); // bullet = black small circle, U+2022 ISOpub
         // bullet is NOT the same as bullet operator, U+2219
-        map.put("hellip", new Character('\u2026')); // horizontal ellipsis = three dot leader, U+2026 ISOpub
-        map.put("prime", new Character('\u2032')); // prime = minutes = feet, U+2032 ISOtech
-        map.put("Prime", new Character('\u2033')); // double prime = seconds = inches, U+2033 ISOtech
-        map.put("oline", new Character('\u203e')); // overline = spacing overscore, U+203E NEW
-        map.put("frasl", new Character('\u2044')); // fraction slash, U+2044 NEW
+        map.put("hellip", Character.valueOf('\u2026')); // horizontal ellipsis = three dot leader, U+2026 ISOpub
+        map.put("prime", Character.valueOf('\u2032')); // prime = minutes = feet, U+2032 ISOtech
+        map.put("Prime", Character.valueOf('\u2033')); // double prime = seconds = inches, U+2033 ISOtech
+        map.put("oline", Character.valueOf('\u203e')); // overline = spacing overscore, U+203E NEW
+        map.put("frasl", Character.valueOf('\u2044')); // fraction slash, U+2044 NEW
         // Letterlike Symbols
-        map.put("weierp", new Character('\u2118')); // script capital P = power set = Weierstrass p, U+2118 ISOamso
-        map.put("image", new Character('\u2111')); // blackletter capital I = imaginary part, U+2111 ISOamso
-        map.put("real", new Character('\u211c')); // blackletter capital R = real part symbol, U+211C ISOamso
-        map.put("trade", new Character('\u2122')); // trade mark sign, U+2122 ISOnum
-        map.put("alefsym", new Character('\u2135')); // alef symbol = first transfinite cardinal, U+2135 NEW
+        map.put("weierp", Character.valueOf('\u2118')); // script capital P = power set = Weierstrass p, U+2118 ISOamso
+        map.put("image", Character.valueOf('\u2111')); // blackletter capital I = imaginary part, U+2111 ISOamso
+        map.put("real", Character.valueOf('\u211c')); // blackletter capital R = real part symbol, U+211C ISOamso
+        map.put("trade", Character.valueOf('\u2122')); // trade mark sign, U+2122 ISOnum
+        map.put("alefsym", Character.valueOf('\u2135')); // alef symbol = first transfinite cardinal, U+2135 NEW
         // alef symbol is NOT the same as hebrew letter alef,
         // U+05D0 although the same glyph could be used to depict both characters
         // Arrows
-        map.put("larr", new Character('\u2190')); // leftwards arrow, U+2190 ISOnum
-        map.put("uarr", new Character('\u2191')); // upwards arrow, U+2191 ISOnum
-        map.put("rarr", new Character('\u2192')); // rightwards arrow, U+2192 ISOnum
-        map.put("darr", new Character('\u2193')); // downwards arrow, U+2193 ISOnum
-        map.put("harr", new Character('\u2194')); // left right arrow, U+2194 ISOamsa
-        map.put("crarr", new Character('\u21b5')); // downwards arrow with corner leftwards = carriage return, U+21B5 NEW
-        map.put("lArr", new Character('\u21d0')); // leftwards double arrow, U+21D0 ISOtech
+        map.put("larr", Character.valueOf('\u2190')); // leftwards arrow, U+2190 ISOnum
+        map.put("uarr", Character.valueOf('\u2191')); // upwards arrow, U+2191 ISOnum
+        map.put("rarr", Character.valueOf('\u2192')); // rightwards arrow, U+2192 ISOnum
+        map.put("darr", Character.valueOf('\u2193')); // downwards arrow, U+2193 ISOnum
+        map.put("harr", Character.valueOf('\u2194')); // left right arrow, U+2194 ISOamsa
+        map.put("crarr", Character.valueOf('\u21b5')); // downwards arrow with corner leftwards = carriage return, U+21B5 NEW
+        map.put("lArr", Character.valueOf('\u21d0')); // leftwards double arrow, U+21D0 ISOtech
         // ISO 10646 does not say that lArr is the same as the 'is implied by' arrow
         // but also does not have any other character for that function. So ? lArr can
         // be used for 'is implied by' as ISOtech suggests
-        map.put("uArr", new Character('\u21d1')); // upwards double arrow, U+21D1 ISOamsa
-        map.put("rArr", new Character('\u21d2')); // rightwards double arrow, U+21D2 ISOtech
+        map.put("uArr", Character.valueOf('\u21d1')); // upwards double arrow, U+21D1 ISOamsa
+        map.put("rArr", Character.valueOf('\u21d2')); // rightwards double arrow, U+21D2 ISOtech
         // ISO 10646 does not say this is the 'implies' character but does not have 
         // another character with this function so ?
         // rArr can be used for 'implies' as ISOtech suggests
-        map.put("dArr", new Character('\u21d3')); // downwards double arrow, U+21D3 ISOamsa
-        map.put("hArr", new Character('\u21d4')); // left right double arrow, U+21D4 ISOamsa
+        map.put("dArr", Character.valueOf('\u21d3')); // downwards double arrow, U+21D3 ISOamsa
+        map.put("hArr", Character.valueOf('\u21d4')); // left right double arrow, U+21D4 ISOamsa
         // Mathematical Operators
-        map.put("forall", new Character('\u2200')); // for all, U+2200 ISOtech
-        map.put("part", new Character('\u2202')); // partial differential, U+2202 ISOtech
-        map.put("exist", new Character('\u2203')); // there exists, U+2203 ISOtech
-        map.put("empty", new Character('\u2205')); // empty set = null set = diameter, U+2205 ISOamso
-        map.put("nabla", new Character('\u2207')); // nabla = backward difference, U+2207 ISOtech
-        map.put("isin", new Character('\u2208')); // element of, U+2208 ISOtech
-        map.put("notin", new Character('\u2209')); // not an element of, U+2209 ISOtech
-        map.put("ni", new Character('\u220b')); // contains as member, U+220B ISOtech
+        map.put("forall", Character.valueOf('\u2200')); // for all, U+2200 ISOtech
+        map.put("part", Character.valueOf('\u2202')); // partial differential, U+2202 ISOtech
+        map.put("exist", Character.valueOf('\u2203')); // there exists, U+2203 ISOtech
+        map.put("empty", Character.valueOf('\u2205')); // empty set = null set = diameter, U+2205 ISOamso
+        map.put("nabla", Character.valueOf('\u2207')); // nabla = backward difference, U+2207 ISOtech
+        map.put("isin", Character.valueOf('\u2208')); // element of, U+2208 ISOtech
+        map.put("notin", Character.valueOf('\u2209')); // not an element of, U+2209 ISOtech
+        map.put("ni", Character.valueOf('\u220b')); // contains as member, U+220B ISOtech
         // should there be a more memorable name than 'ni'?
-        map.put("prod", new Character('\u220f')); // n-ary product = product sign, U+220F ISOamsb
+        map.put("prod", Character.valueOf('\u220f')); // n-ary product = product sign, U+220F ISOamsb
         // prod is NOT the same character as U+03A0 'greek capital letter pi' though
         // the same glyph might be used for both
-        map.put("sum", new Character('\u2211')); // n-ary sumation, U+2211 ISOamsb
+        map.put("sum", Character.valueOf('\u2211')); // n-ary sumation, U+2211 ISOamsb
         // sum is NOT the same character as U+03A3 'greek capital letter sigma'
         // though the same glyph might be used for both
-        map.put("minus", new Character('\u2212')); // minus sign, U+2212 ISOtech
-        map.put("lowast", new Character('\u2217')); // asterisk operator, U+2217 ISOtech
-        map.put("radic", new Character('\u221a')); // square root = radical sign, U+221A ISOtech
-        map.put("prop", new Character('\u221d')); // proportional to, U+221D ISOtech
-        map.put("infin", new Character('\u221e')); // infinity, U+221E ISOtech
-        map.put("ang", new Character('\u2220')); // angle, U+2220 ISOamso
-        map.put("and", new Character('\u2227')); // logical and = wedge, U+2227 ISOtech
-        map.put("or", new Character('\u2228')); // logical or = vee, U+2228 ISOtech
-        map.put("cap", new Character('\u2229')); // intersection = cap, U+2229 ISOtech
-        map.put("cup", new Character('\u222a')); // union = cup, U+222A ISOtech
-        map.put("int", new Character('\u222b')); // integral, U+222B ISOtech
-        map.put("there4", new Character('\u2234')); // therefore, U+2234 ISOtech
-        map.put("sim", new Character('\u223c')); // tilde operator = varies with = similar to, U+223C ISOtech
+        map.put("minus", Character.valueOf('\u2212')); // minus sign, U+2212 ISOtech
+        map.put("lowast", Character.valueOf('\u2217')); // asterisk operator, U+2217 ISOtech
+        map.put("radic", Character.valueOf('\u221a')); // square root = radical sign, U+221A ISOtech
+        map.put("prop", Character.valueOf('\u221d')); // proportional to, U+221D ISOtech
+        map.put("infin", Character.valueOf('\u221e')); // infinity, U+221E ISOtech
+        map.put("ang", Character.valueOf('\u2220')); // angle, U+2220 ISOamso
+        map.put("and", Character.valueOf('\u2227')); // logical and = wedge, U+2227 ISOtech
+        map.put("or", Character.valueOf('\u2228')); // logical or = vee, U+2228 ISOtech
+        map.put("cap", Character.valueOf('\u2229')); // intersection = cap, U+2229 ISOtech
+        map.put("cup", Character.valueOf('\u222a')); // union = cup, U+222A ISOtech
+        map.put("int", Character.valueOf('\u222b')); // integral, U+222B ISOtech
+        map.put("there4", Character.valueOf('\u2234')); // therefore, U+2234 ISOtech
+        map.put("sim", Character.valueOf('\u223c')); // tilde operator = varies with = similar to, U+223C ISOtech
         // tilde operator is NOT the same character as the tilde, U+007E,
         // although the same glyph might be used to represent both
-        map.put("cong", new Character('\u2245')); // approximately equal to, U+2245 ISOtech
-        map.put("asymp", new Character('\u2248')); // almost equal to = asymptotic to, U+2248 ISOamsr
-        map.put("ne", new Character('\u2260')); // not equal to, U+2260 ISOtech
-        map.put("equiv", new Character('\u2261')); // identical to, U+2261 ISOtech
-        map.put("le", new Character('\u2264')); // less-than or equal to, U+2264 ISOtech
-        map.put("ge", new Character('\u2265')); // greater-than or equal to, U+2265 ISOtech
-        map.put("sub", new Character('\u2282')); // subset of, U+2282 ISOtech
-        map.put("sup", new Character('\u2283')); // superset of, U+2283 ISOtech
+        map.put("cong", Character.valueOf('\u2245')); // approximately equal to, U+2245 ISOtech
+        map.put("asymp", Character.valueOf('\u2248')); // almost equal to = asymptotic to, U+2248 ISOamsr
+        map.put("ne", Character.valueOf('\u2260')); // not equal to, U+2260 ISOtech
+        map.put("equiv", Character.valueOf('\u2261')); // identical to, U+2261 ISOtech
+        map.put("le", Character.valueOf('\u2264')); // less-than or equal to, U+2264 ISOtech
+        map.put("ge", Character.valueOf('\u2265')); // greater-than or equal to, U+2265 ISOtech
+        map.put("sub", Character.valueOf('\u2282')); // subset of, U+2282 ISOtech
+        map.put("sup", Character.valueOf('\u2283')); // superset of, U+2283 ISOtech
         // note that nsup, 'not a superset of, U+2283' is not covered by the Symbol 
         // font encoding and is not included. Should it be, for symmetry?
         // It is in ISOamsn
-        map.put("nsub", new Character('\u2284')); // not a subset of, U+2284 ISOamsn
-        map.put("sube", new Character('\u2286')); // subset of or equal to, U+2286 ISOtech
-        map.put("supe", new Character('\u2287')); // superset of or equal to, U+2287 ISOtech
-        map.put("oplus", new Character('\u2295')); // circled plus = direct sum, U+2295 ISOamsb
-        map.put("otimes", new Character('\u2297')); // circled times = vector product, U+2297 ISOamsb
-        map.put("perp", new Character('\u22a5')); // up tack = orthogonal to = perpendicular, U+22A5 ISOtech
-        map.put("sdot", new Character('\u22c5')); // dot operator, U+22C5 ISOamsb
+        map.put("nsub", Character.valueOf('\u2284')); // not a subset of, U+2284 ISOamsn
+        map.put("sube", Character.valueOf('\u2286')); // subset of or equal to, U+2286 ISOtech
+        map.put("supe", Character.valueOf('\u2287')); // superset of or equal to, U+2287 ISOtech
+        map.put("oplus", Character.valueOf('\u2295')); // circled plus = direct sum, U+2295 ISOamsb
+        map.put("otimes", Character.valueOf('\u2297')); // circled times = vector product, U+2297 ISOamsb
+        map.put("perp", Character.valueOf('\u22a5')); // up tack = orthogonal to = perpendicular, U+22A5 ISOtech
+        map.put("sdot", Character.valueOf('\u22c5')); // dot operator, U+22C5 ISOamsb
         // dot operator is NOT the same character as U+00B7 middle dot
         // Miscellaneous Technical
-        map.put("lceil", new Character('\u2308')); // left ceiling = apl upstile, U+2308 ISOamsc
-        map.put("rceil", new Character('\u2309')); // right ceiling, U+2309 ISOamsc
-        map.put("lfloor", new Character('\u230a')); // left floor = apl downstile, U+230A ISOamsc
-        map.put("rfloor", new Character('\u230b')); // right floor, U+230B ISOamsc
-        map.put("lang", new Character('\u2329')); // left-pointing angle bracket = bra, U+2329 ISOtech
+        map.put("lceil", Character.valueOf('\u2308')); // left ceiling = apl upstile, U+2308 ISOamsc
+        map.put("rceil", Character.valueOf('\u2309')); // right ceiling, U+2309 ISOamsc
+        map.put("lfloor", Character.valueOf('\u230a')); // left floor = apl downstile, U+230A ISOamsc
+        map.put("rfloor", Character.valueOf('\u230b')); // right floor, U+230B ISOamsc
+        map.put("lang", Character.valueOf('\u2329')); // left-pointing angle bracket = bra, U+2329 ISOtech
         // lang is NOT the same character as U+003C 'less than' 
         // or U+2039 'single left-pointing angle quotation mark'
-        map.put("rang", new Character('\u232a')); // right-pointing angle bracket = ket, U+232A ISOtech
+        map.put("rang", Character.valueOf('\u232a')); // right-pointing angle bracket = ket, U+232A ISOtech
         // rang is NOT the same character as U+003E 'greater than' 
         // or U+203A 'single right-pointing angle quotation mark'
         // Geometric Shapes
-        map.put("loz", new Character('\u25ca')); // lozenge, U+25CA ISOpub
+        map.put("loz", Character.valueOf('\u25ca')); // lozenge, U+25CA ISOpub
         // Miscellaneous Symbols
-        map.put("spades", new Character('\u2660')); // black spade suit, U+2660 ISOpub
+        map.put("spades", Character.valueOf('\u2660')); // black spade suit, U+2660 ISOpub
         // black here seems to mean filled as opposed to hollow
-        map.put("clubs", new Character('\u2663')); // black club suit = shamrock, U+2663 ISOpub
-        map.put("hearts", new Character('\u2665')); // black heart suit = valentine, U+2665 ISOpub
-        map.put("diams", new Character('\u2666')); // black diamond suit, U+2666 ISOpub
+        map.put("clubs", Character.valueOf('\u2663')); // black club suit = shamrock, U+2663 ISOpub
+        map.put("hearts", Character.valueOf('\u2665')); // black heart suit = valentine, U+2665 ISOpub
+        map.put("diams", Character.valueOf('\u2666')); // black diamond suit, U+2666 ISOpub
         // C0 Controls and Basic Latin
-        map.put("quot", new Character('\u0022')); // quotation mark = APL quote, U+0022 ISOnum
-        map.put("amp", new Character('\u0026')); // ampersand, U+0026 ISOnum
-        map.put("apos", new Character('\''));
-        map.put("lt", new Character('\u003c')); // less-than sign, U+003C ISOnum
-        map.put("gt", new Character('\u003e')); // greater-than sign, U+003E ISOnum
+        map.put("quot", Character.valueOf('\u0022')); // quotation mark = APL quote, U+0022 ISOnum
+        map.put("amp", Character.valueOf('\u0026')); // ampersand, U+0026 ISOnum
+        map.put("apos", Character.valueOf('\''));
+        map.put("lt", Character.valueOf('\u003c')); // less-than sign, U+003C ISOnum
+        map.put("gt", Character.valueOf('\u003e')); // greater-than sign, U+003E ISOnum
         // Latin Extended-A
-        map.put("OElig", new Character('\u0152')); // latin capital ligature OE, U+0152 ISOlat2
-        map.put("oelig", new Character('\u0153')); // latin small ligature oe, U+0153 ISOlat2
+        map.put("OElig", Character.valueOf('\u0152')); // latin capital ligature OE, U+0152 ISOlat2
+        map.put("oelig", Character.valueOf('\u0153')); // latin small ligature oe, U+0153 ISOlat2
         // ligature is a misnomer, this is a separate character in some languages
-        map.put("Scaron", new Character('\u0160')); // latin capital letter S with caron, U+0160 ISOlat2
-        map.put("scaron", new Character('\u0161')); // latin small letter s with caron, U+0161 ISOlat2
-        map.put("Yuml", new Character('\u0178')); // latin capital letter Y with diaeresis, U+0178 ISOlat2
+        map.put("Scaron", Character.valueOf('\u0160')); // latin capital letter S with caron, U+0160 ISOlat2
+        map.put("scaron", Character.valueOf('\u0161')); // latin small letter s with caron, U+0161 ISOlat2
+        map.put("Yuml", Character.valueOf('\u0178')); // latin capital letter Y with diaeresis, U+0178 ISOlat2
         // Spacing Modifier Letters
-        map.put("circ", new Character('\u02c6')); // modifier letter circumflex accent, U+02C6 ISOpub
-        map.put("tilde", new Character('\u02dc')); // small tilde, U+02DC ISOdia
+        map.put("circ", Character.valueOf('\u02c6')); // modifier letter circumflex accent, U+02C6 ISOpub
+        map.put("tilde", Character.valueOf('\u02dc')); // small tilde, U+02DC ISOdia
         // General Punctuation
-        map.put("ensp", new Character('\u2002')); // en space, U+2002 ISOpub
-        map.put("emsp", new Character('\u2003')); // em space, U+2003 ISOpub
-        map.put("thinsp", new Character('\u2009')); // thin space, U+2009 ISOpub
-        map.put("zwnj", new Character('\u200c')); // zero width non-joiner, U+200C NEW RFC 2070
-        map.put("zwj", new Character('\u200d')); // zero width joiner, U+200D NEW RFC 2070
-        map.put("lrm", new Character('\u200e')); // left-to-right mark, U+200E NEW RFC 2070
-        map.put("rlm", new Character('\u200f')); // right-to-left mark, U+200F NEW RFC 2070
-        map.put("ndash", new Character('\u2013')); // en dash, U+2013 ISOpub
-        map.put("mdash", new Character('\u2014')); // em dash, U+2014 ISOpub
-        map.put("lsquo", new Character('\u2018')); // left single quotation mark, U+2018 ISOnum
-        map.put("rsquo", new Character('\u2019')); // right single quotation mark, U+2019 ISOnum
-        map.put("sbquo", new Character('\u201a')); // single low-9 quotation mark, U+201A NEW
-        map.put("ldquo", new Character('\u201c')); // left double quotation mark, U+201C ISOnum
-        map.put("rdquo", new Character('\u201d')); // right double quotation mark, U+201D ISOnum
-        map.put("bdquo", new Character('\u201e')); // double low-9 quotation mark, U+201E NEW
-        map.put("dagger", new Character('\u2020')); // dagger, U+2020 ISOpub
-        map.put("Dagger", new Character('\u2021')); // double dagger, U+2021 ISOpub
-        map.put("permil", new Character('\u2030')); // per mille sign, U+2030 ISOtech
-        map.put("lsaquo", new Character('\u2039')); // single left-pointing angle quotation mark, U+2039 ISO proposed
+        map.put("ensp", Character.valueOf('\u2002')); // en space, U+2002 ISOpub
+        map.put("emsp", Character.valueOf('\u2003')); // em space, U+2003 ISOpub
+        map.put("thinsp", Character.valueOf('\u2009')); // thin space, U+2009 ISOpub
+        map.put("zwnj", Character.valueOf('\u200c')); // zero width non-joiner, U+200C NEW RFC 2070
+        map.put("zwj", Character.valueOf('\u200d')); // zero width joiner, U+200D NEW RFC 2070
+        map.put("lrm", Character.valueOf('\u200e')); // left-to-right mark, U+200E NEW RFC 2070
+        map.put("rlm", Character.valueOf('\u200f')); // right-to-left mark, U+200F NEW RFC 2070
+        map.put("ndash", Character.valueOf('\u2013')); // en dash, U+2013 ISOpub
+        map.put("mdash", Character.valueOf('\u2014')); // em dash, U+2014 ISOpub
+        map.put("lsquo", Character.valueOf('\u2018')); // left single quotation mark, U+2018 ISOnum
+        map.put("rsquo", Character.valueOf('\u2019')); // right single quotation mark, U+2019 ISOnum
+        map.put("sbquo", Character.valueOf('\u201a')); // single low-9 quotation mark, U+201A NEW
+        map.put("ldquo", Character.valueOf('\u201c')); // left double quotation mark, U+201C ISOnum
+        map.put("rdquo", Character.valueOf('\u201d')); // right double quotation mark, U+201D ISOnum
+        map.put("bdquo", Character.valueOf('\u201e')); // double low-9 quotation mark, U+201E NEW
+        map.put("dagger", Character.valueOf('\u2020')); // dagger, U+2020 ISOpub
+        map.put("Dagger", Character.valueOf('\u2021')); // double dagger, U+2021 ISOpub
+        map.put("permil", Character.valueOf('\u2030')); // per mille sign, U+2030 ISOtech
+        map.put("lsaquo", Character.valueOf('\u2039')); // single left-pointing angle quotation mark, U+2039 ISO proposed
         // lsaquo is proposed but not yet ISO standardized
-        map.put("rsaquo", new Character('\u203a')); // single right-pointing angle quotation mark, U+203A ISO proposed
+        map.put("rsaquo", Character.valueOf('\u203a')); // single right-pointing angle quotation mark, U+203A ISO proposed
         // rsaquo is proposed but not yet ISO standardized
-        map.put("euro", new Character('\u20ac')); // euro sign, U+20AC NEW
+        map.put("euro", Character.valueOf('\u20ac')); // euro sign, U+20AC NEW
     }
     
 
--- a/core/com/lowagie/text/xml/simpleparser/SimpleXMLParser.java
+++ b/core/com/lowagie/text/xml/simpleparser/SimpleXMLParser.java
@@ -497,7 +497,7 @@
      * @param	s	a state to add to the stack
      */
     private void saveState(int s) {
-    	stack.push(new Integer(s));
+    	stack.push(Integer.valueOf(s));
     }
     /**
      * Flushes the text that is currently in the buffer.
--- a/rtf/com/lowagie/text/rtf/document/RtfDocument.java
+++ b/rtf/com/lowagie/text/rtf/document/RtfDocument.java
@@ -221,7 +221,7 @@
         Integer newInt = null;
         do {
 //        	do {
-        		newInt = new Integer((int) (Math.random() * Integer.MAX_VALUE));
+        		newInt = Integer.valueOf((int) (Math.random() * Integer.MAX_VALUE));
 //        	} while(newInt.intValue() <= -1 && newInt.intValue() >= -5);
         } while(this.previousRandomInts.contains(newInt));
         this.previousRandomInts.add(newInt);
--- a/rtf/com/lowagie/text/rtf/graphic/RtfShapeProperty.java
+++ b/rtf/com/lowagie/text/rtf/graphic/RtfShapeProperty.java
@@ -151,7 +151,7 @@
      * @param value The long value to use.
      */
 	public RtfShapeProperty(String name, long value) {
-		this(name, new Long(value));
+		this(name, Long.valueOf(value));
 		this.type = PROPERTY_TYPE_LONG;
 	}
 	
--- a/rtf/com/lowagie/text/rtf/parser/ctrlwords/RtfCtrlWordData.java
+++ b/rtf/com/lowagie/text/rtf/parser/ctrlwords/RtfCtrlWordData.java
@@ -110,7 +110,7 @@
 	 */
 	public Integer toInteger() {
 		Integer value;
-		value = new Integer(this.isNeg ? Integer.parseInt(this.param)*-1 : Integer.parseInt(this.param));
+		value = Integer.valueOf(this.isNeg ? Integer.parseInt(this.param)*-1 : Integer.parseInt(this.param));
 		return value;
 	}
 	
@@ -135,7 +135,7 @@
 	 */
 	public Long toLong() {
 		Long value;
-		value = new Long(this.isNeg ? Long.parseLong(this.param)*-1 : Long.parseLong(this.param));
+		value = Long.valueOf(this.isNeg ? Long.parseLong(this.param)*-1 : Long.parseLong(this.param));
 		return value;
 	}
 	
--- a/rtf/com/lowagie/text/rtf/parser/destinations/RtfDestinationShppict.java
+++ b/rtf/com/lowagie/text/rtf/parser/destinations/RtfDestinationShppict.java
@@ -113,10 +113,10 @@
 
 	/* bitapinfo */
 	// wbmbitspixelN - number of bits per pixel - 1 monochrome, 4 16 color, 8 256 color, 24 RGB - Default 1
-	private Integer bitsPerPixel = new Integer(1);
+	private Integer bitsPerPixel = Integer.valueOf(1);
 
 	// wbmplanesN - number of color planes - must be 1
-	private Integer planes = new Integer(1);
+	private Integer planes = Integer.valueOf(1);
 
 	// wbmwidthbytesN - number of bytes in each raster line
 	private Integer widthBytes = null;
@@ -136,10 +136,10 @@
 	private Long desiredHeight = null;
 
 	// picscalexN
-	private Integer scaleX = new Integer(100);
+	private Integer scaleX = Integer.valueOf(100);
 
 	// picscaleyN
-	private Integer scaleY = new Integer(100);
+	private Integer scaleY = Integer.valueOf(100);
 
 	// picscaled - macpict setting
 	private Boolean scaled = null;
@@ -151,16 +151,16 @@
 	private Boolean wordArt = Boolean.FALSE;
 
 	// piccroptN
-	private Integer cropTop = new Integer(0);
+	private Integer cropTop = Integer.valueOf(0);
 
 	// piccropbN
-	private Integer cropBottom = new Integer(0);
+	private Integer cropBottom = Integer.valueOf(0);
 
 	// piccroplN
-	private Integer cropLeft = new Integer(0);
+	private Integer cropLeft = Integer.valueOf(0);
 
 	// piccroprN
-	private Integer cropRight = new Integer(0);
+	private Integer cropRight = Integer.valueOf(0);
 
 	/* metafileinfo */
 	// picbmp
@@ -665,15 +665,15 @@
 		this.height = null;
 		this.desiredWidth = null;
 		this.desiredHeight = null;
-		this.scaleX = new Integer(100);
-		this.scaleY = new Integer(100);
+		this.scaleX = Integer.valueOf(100);
+		this.scaleY = Integer.valueOf(100);
 		this.scaled = null;
 		this.inlinePicture = Boolean.FALSE;
 		this.wordArt = Boolean.FALSE;
-		this.cropTop = new Integer(0);
-		this.cropBottom = new Integer(0);
-		this.cropLeft = new Integer(0);
-		this.cropRight = new Integer(0);
+		this.cropTop = Integer.valueOf(0);
+		this.cropBottom = Integer.valueOf(0);
+		this.cropLeft = Integer.valueOf(0);
+		this.cropRight = Integer.valueOf(0);
 		this.bitmap = false;
 		this.bbp = 1;
 		this.dataFormat = FORMAT_HEXADECIMAL;
--- a/rtf/com/lowagie/text/rtf/parser/properties/RtfProperty.java
+++ b/rtf/com/lowagie/text/rtf/parser/properties/RtfProperty.java
@@ -254,7 +254,7 @@
 		
 		Object propertyValue = getProperty(propertyName);
 		if(propertyValue == null) {
-			propertyValue = new Integer(RtfProperty.ON);
+			propertyValue = Integer.valueOf(RtfProperty.ON);
 		} else {
 			if(propertyValue instanceof Integer) {
 				int value = ((Integer)propertyValue).intValue();
@@ -333,7 +333,7 @@
 			if (valueOld==propertyValueNew) return true;
 		} 
 		beforeChange(propertyName);
-		properties.put(propertyName, new Integer(propertyValueNew));
+		properties.put(propertyName, Integer.valueOf(propertyValueNew));
 		afterChange(propertyName);
 		setModified(propertyName, true);
 		return true;
@@ -351,7 +351,7 @@
 		if((value | propertyValue) == value) return true;
 		value |= propertyValue;
 		beforeChange(propertyName);
-		properties.put(propertyName, new Integer(value));
+		properties.put(propertyName, Integer.valueOf(value));
 		afterChange(propertyName);
 		setModified(propertyName, true);
 		return true;
@@ -371,7 +371,7 @@
 			if (valueOld==propertyValueNew) return true;
 		} 
 		beforeChange(propertyName);
-		properties.put(propertyName, new Long(propertyValueNew));
+		properties.put(propertyName, Long.valueOf(propertyValueNew));
 		afterChange(propertyName);
 		setModified(propertyName, true);
 		return true;
@@ -389,7 +389,7 @@
 		if((value | propertyValue) == value) return true;
 		value |= propertyValue;
 		beforeChange(propertyName);
-		properties.put(propertyName, new Long(value));
+		properties.put(propertyName, Long.valueOf(value));
 		afterChange(propertyName);
 		setModified(propertyName, true);
 		return true;
--- a/rtf/com/lowagie/text/rtf/table/RtfBorderGroup.java
+++ b/rtf/com/lowagie/text/rtf/table/RtfBorderGroup.java
@@ -148,7 +148,7 @@
      */
     private void setBorder(int borderPosition, int borderStyle, float borderWidth, Color borderColor) {
         RtfBorder border = new RtfBorder(this.document, this.borderType, borderPosition, borderStyle, borderWidth, borderColor);
-        this.borders.put(new Integer(borderPosition), border);
+        this.borders.put(Integer.valueOf(borderPosition), border);
     }
     
     /**
@@ -185,20 +185,20 @@
      */
     public void removeBorder(int bordersToRemove) {
         if((bordersToRemove & Rectangle.LEFT) == Rectangle.LEFT) {
-            this.borders.remove(new Integer(RtfBorder.LEFT_BORDER));
+            this.borders.remove(Integer.valueOf(RtfBorder.LEFT_BORDER));
         }
         if((bordersToRemove & Rectangle.TOP) == Rectangle.TOP) {
-            this.borders.remove(new Integer(RtfBorder.TOP_BORDER));
+            this.borders.remove(Integer.valueOf(RtfBorder.TOP_BORDER));
         }
         if((bordersToRemove & Rectangle.RIGHT) == Rectangle.RIGHT) {
-            this.borders.remove(new Integer(RtfBorder.RIGHT_BORDER));
+            this.borders.remove(Integer.valueOf(RtfBorder.RIGHT_BORDER));
         }
         if((bordersToRemove & Rectangle.BOTTOM) == Rectangle.BOTTOM) {
-            this.borders.remove(new Integer(RtfBorder.BOTTOM_BORDER));
+            this.borders.remove(Integer.valueOf(RtfBorder.BOTTOM_BORDER));
         }
         if((bordersToRemove & Rectangle.BOX) == Rectangle.BOX && this.borderType == RtfBorder.ROW_BORDER) {
-            this.borders.remove(new Integer(RtfBorder.VERTICAL_BORDER));
-            this.borders.remove(new Integer(RtfBorder.HORIZONTAL_BORDER));
+            this.borders.remove(Integer.valueOf(RtfBorder.VERTICAL_BORDER));
+            this.borders.remove(Integer.valueOf(RtfBorder.HORIZONTAL_BORDER));
         }
     }
     
--- a/toolbox/com/lowagie/toolbox/plugins/Split.java
+++ b/toolbox/com/lowagie/toolbox/plugins/Split.java
@@ -71,7 +71,7 @@
 		arguments.add(f);
 		arguments.add(new FileArgument(this, "destfile1", "The file to which the first part of the original PDF has to be written", true, new PdfFilter()));
 		arguments.add(new FileArgument(this, "destfile2", "The file to which the second part of the original PDF has to be written", true, new PdfFilter()));
-		arguments.add(new IntegerArgument(this, "pagenumber", "The pagenumber where you want to split"));
+		arguments.add(Integer.valueOfArgument(this, "pagenumber", "The pagenumber where you want to split"));
 	}
 
 	/**
--- a/toolbox/com/lowagie/toolbox/plugins/Watermarker.java
+++ b/toolbox/com/lowagie/toolbox/plugins/Watermarker.java
@@ -77,7 +77,7 @@
         arguments.add(inputfile);
         arguments.add(new StringArgument(this, "watermark",
                                          "The text that can be used as watermark"));
-        arguments.add(new IntegerArgument(this, "fontsize",
+        arguments.add(Integer.valueOfArgument(this, "fontsize",
                                          "The fontsize of the watermark text"));
         arguments.add(new FloatArgument(this, "opacity",
                                          "The opacity of the watermark text"));
