Index: java/org/apache/el/lang/ELSupport.java =================================================================== --- java/org/apache/el/lang/ELSupport.java (revision 682174) +++ java/org/apache/el/lang/ELSupport.java (working copy) @@ -226,18 +226,18 @@ return ((BigDecimal) number).toBigInteger(); } if (number instanceof BigInteger) { - return new BigInteger(number.toString()); + return number; } return BigInteger.valueOf(number.longValue()); } if (BigDecimal.class.equals(type)) { if (number instanceof BigDecimal) { - return new BigDecimal(number.toString()); + return number; } if (number instanceof BigInteger) { return new BigDecimal((BigInteger) number); } - return new BigDecimal(number.doubleValue()); + return new BigDecimal(number.toString()); } if (Byte.TYPE == type || Byte.class.equals(type)) { return new Byte(number.byteValue());