Index: src/test/org/apache/commons/lang/builder/EqualsBuilderTest.java
===================================================================
--- src/test/org/apache/commons/lang/builder/EqualsBuilderTest.java	(revision 610665)
+++ src/test/org/apache/commons/lang/builder/EqualsBuilderTest.java	(working copy)
@@ -16,6 +16,7 @@
  */
 package org.apache.commons.lang.builder;
 
+import java.math.BigDecimal;
 import java.util.Arrays;
 
 import junit.framework.Test;
@@ -376,6 +377,14 @@
         assertTrue(new EqualsBuilder().append(Float.POSITIVE_INFINITY, Float.POSITIVE_INFINITY).isEquals());
     }
 
+    // https://issues.apache.org/jira/browse/LANG-393
+    public void testBigDecimal() {
+        BigDecimal o1 = new BigDecimal("2.0");
+        BigDecimal o2 = new BigDecimal("2.00");
+        assertTrue(new EqualsBuilder().append(o1, o1).isEquals());
+        assertTrue(new EqualsBuilder().append(o1, o2).isEquals());
+    }
+
     public void testAccessors() {
         EqualsBuilder equalsBuilder = new EqualsBuilder();
         assertTrue(equalsBuilder.isEquals());
Index: src/java/org/apache/commons/lang/builder/EqualsBuilder.java
===================================================================
--- src/java/org/apache/commons/lang/builder/EqualsBuilder.java	(revision 610665)
+++ src/java/org/apache/commons/lang/builder/EqualsBuilder.java	(working copy)
@@ -377,8 +377,12 @@
         }
         Class lhsClass = lhs.getClass();
         if (!lhsClass.isArray()) {
-            // The simple case, not an array, just test the element
-            isEquals = lhs.equals(rhs);
+            if (lhs instanceof java.math.BigDecimal) {
+                isEquals = (((java.math.BigDecimal)lhs).compareTo(rhs) == 0);
+            } else {
+                // The simple case, not an array, just test the element
+                isEquals = lhs.equals(rhs);
+            }
         } else if (lhs.getClass() != rhs.getClass()) {
             // Here when we compare different dimensions, for example: a boolean[][] to a boolean[] 
             this.setEquals(false);
