diff --git a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/distribution/EmpiricalDistribution.java b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/distribution/EmpiricalDistribution.java
index 7929378..cca2c19 100644
--- a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/distribution/EmpiricalDistribution.java
+++ b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/distribution/EmpiricalDistribution.java
@@ -409,7 +409,8 @@
             ++i;
         }
 
-        final ContinuousDistribution kernel = getKernel(binStats.get(i));
+        final SummaryStatistics stats = binStats.get(i);
+        final ContinuousDistribution kernel = getKernel(stats);
         final double kB = kB(i);
         final double[] binBounds = getUpperBounds();
         final double lower = i == 0 ? min : binBounds[i - 1];
@@ -546,7 +547,7 @@
      */
     private static Function<SummaryStatistics, ContinuousDistribution> defaultKernel() {
         return stats -> {
-            if (stats.getN() <= 1 ||
+            if (stats.getN() <= 3 ||
                 stats.getVariance() == 0) {
                 return new ConstantContinuousDistribution(stats.getMean());
             } else {
diff --git a/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/distribution/EmpiricalDistributionTest.java b/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/distribution/EmpiricalDistributionTest.java
index 4f26e4e..addd94a 100644
--- a/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/distribution/EmpiricalDistributionTest.java
+++ b/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/distribution/EmpiricalDistributionTest.java
@@ -489,13 +489,12 @@
             6212, 5961, 711
         };
 
-        final EmpiricalDistribution ed = EmpiricalDistribution.from(1000, data);
+        final double p = 0.32;
+        for (int i = 745; i <= 1100; i++) {
+            final EmpiricalDistribution ed = EmpiricalDistribution.from(i, data);
+            final double v = ed.inverseCumulativeProbability(p);
 
-        double v;
-        double p;
-
-        p = 0.32;
-        v = ed.inverseCumulativeProbability(p);
-        Assert.assertTrue("p=" + p + " => v=" + v, Double.isFinite(v));
+            Assert.assertTrue("p=" + p + " => v=" + v, Double.isFinite(v));
+        }
     }
 }
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 595ebe8..5c276ce 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -97,6 +97,9 @@
  nightmare was one of the main reasons for creating more focused
  components.]
 ">
+      <action dev="erans" type="fix" issue="MATH-1462">
+        "EmpiricalDistribution": Use constant kernel for bins that contain up to 3 values.
+      </action>
       <action dev="aherbert" due-to="Arturo Bernal" type="update">
         Simplify assertions with simpler equivalent.
       </action>
