diff --git a/src/lagrangian/distributionModels/binned/binned.C b/src/lagrangian/distributionModels/binned/binned.C
index 57530fa649c794e4552ac5b06e7f04e2bba4ab7b..a5cf7e1f2b632fc9f86abbafa09a0671f65287aa 100644
--- a/src/lagrangian/distributionModels/binned/binned.C
+++ b/src/lagrangian/distributionModels/binned/binned.C
@@ -47,10 +47,6 @@ const char* Foam::distributionModels::binned::header =
 void Foam::distributionModels::binned::initialise()
 {
     const label nSample(xy_.size());
-    forAll(xy_, bini)
-    {
-        xy_[bini][1] /= scalar(nSample);
-    }
 
     // Convert values to integral values
     for (label bini = 1; bini < nSample; ++bini)
@@ -58,6 +54,13 @@ void Foam::distributionModels::binned::initialise()
         xy_[bini][1] += xy_[bini - 1][1];
     }
 
+    // Normalise
+    scalar sumProb = xy_.last()[1];
+    forAll(xy_, bini)
+    {
+        xy_[bini][1] /= sumProb;
+    }
+
     // Calculate the mean value
     label bini = 0;
     forAll(xy_, i)
@@ -188,16 +191,7 @@ Foam::scalar Foam::distributionModels::binned::sample() const
     {
         if (xy_[i][1] > y)
         {
-            scalar d1 = y - xy_[i][1];
-            scalar d2 = xy_[i+1][1] - y;
-            if (d1 < d2)
-            {
-                return xy_[i][0];
-            }
-            else
-            {
-                return xy_[i+1][0];
-            }
+            return xy_[i][0];
         }
     }