diff --git a/v2.5/toolkit/fastnlotoolkit/fastNLOInterpolBase.cc b/v2.5/toolkit/fastnlotoolkit/fastNLOInterpolBase.cc
index 2e8608f673d1d7c0cbbbad91df8d927060ce8872..afaf4460f9d49575583b72ce1d46f3a95c4f96af 100644
--- a/v2.5/toolkit/fastnlotoolkit/fastNLOInterpolBase.cc
+++ b/v2.5/toolkit/fastnlotoolkit/fastNLOInterpolBase.cc
@@ -177,7 +177,31 @@ int fastNLOInterpolBase::FindLargestPossibleNode(double x, bool canExtend = fals
       while ( x < fgrid[1] ) {
          double newxH = fHgrid[0] - (fHgrid[1] - fHgrid[0]);
          fHgrid.insert(fHgrid.begin(), newxH);
-         fgrid.insert(fgrid.begin(), Function_sqrtlog10_inv(newxH));
+         switch (fdm) {
+         case fastNLOGrid::kLinear:
+            fgrid.insert(fgrid.begin(), newxH);
+            break;
+         case fastNLOGrid::kLogLog025:
+            fgrid.insert(fgrid.begin(), Function_loglog025_inv(newxH));
+            break;
+         case fastNLOGrid::kLog10:
+            fgrid.insert(fgrid.begin(), Function_log10_inv(newxH));
+            break;
+         case fastNLOGrid::kSqrtLog10:
+            fgrid.insert(fgrid.begin(), Function_sqrtlog10_inv(newxH));
+            break;
+         case fastNLOGrid::kLogLog:
+            fgrid.insert(fgrid.begin(), Function_loglog_inv(newxH));
+            break;
+         case fastNLOGrid::k3rdrtLog10:
+            fgrid.insert(fgrid.begin(), Function_3rdrtlog10_inv(newxH));
+            break;
+         case fastNLOGrid::k4thrtLog10:
+            fgrid.insert(fgrid.begin(), Function_4thrtlog10_inv(newxH));
+            break;
+         default:
+            error["MakeGridFromHGrid"]<<"Unknown grid type."<<endl;
+         }
          debug["FindLargestPossibleNode"]<<"Value is smaller than smallest node. Extending grid. x="<<x<<endl;
          gridExtended = true;
       }