diff --git a/v2.5/toolkit/fastnlotoolkit/fastNLOInterpolBase.cc b/v2.5/toolkit/fastnlotoolkit/fastNLOInterpolBase.cc
index 88fd0d71a3a494fadd01a6e8ba715f3d4e6f6be2..91ce9b43799a3e6870fa91e57626f30b69c1f3b6 100644
--- a/v2.5/toolkit/fastnlotoolkit/fastNLOInterpolBase.cc
+++ b/v2.5/toolkit/fastnlotoolkit/fastNLOInterpolBase.cc
@@ -184,7 +184,33 @@ 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["FindLargestPossibleNode"]<<"Unknown grid type."<<endl;
+         }
+
          debug["FindLargestPossibleNode"]<<"Value is smaller than smallest node. Extending grid. x="<<x<<endl;
          gridExtended = true;
       }