diff --git a/Device/Histo/Histogram2D.cpp b/Device/Histo/Histogram2D.cpp
index d407d8dd2647349c1c2a7b5c51f48c7b5819a28d..c36f3f44e6459ae6cff190971d678c9a2114ea55 100644
--- a/Device/Histo/Histogram2D.cpp
+++ b/Device/Histo/Histogram2D.cpp
@@ -112,8 +112,10 @@ Histogram1D* Histogram2D::projectionY(double xlow, double xup)
 
 Histogram2D* Histogram2D::crop(double xmin, double ymin, double xmax, double ymax)
 {
-    const std::unique_ptr<IAxis> xaxis(xAxis().createClippedAxis(xmin, xmax));
-    const std::unique_ptr<IAxis> yaxis(yAxis().createClippedAxis(ymin, ymax));
+    const std::unique_ptr<IAxis> xaxis{xAxis().clone()};
+    const std::unique_ptr<IAxis> yaxis{yAxis().clone()};
+    xaxis->clip(xmin, xmax);
+    yaxis->clip(ymin, ymax);
 
     Histogram2D* result = new Histogram2D(*xaxis, *yaxis);
     OutputData<CumulativeValue>::const_iterator it_origin = m_data.begin();