diff --git a/splinterpolator.h b/splinterpolator.h
index 9c367c398b48a490c35fa088bfa3d3b928720427..bc8c8f59bd7a45f508fd5b167f58d24321660532 100644
--- a/splinterpolator.h
+++ b/splinterpolator.h
@@ -760,7 +760,12 @@ unsigned int Splinterpolator<T>::get_start_indicies(const double *coord, int *si
   unsigned int ni = _order+1;
 
   for (unsigned int i=0; i<_ndim; i++) {
-    sinds[i] = std::ceil(coord[i]) - ni/2;
+    if (odd(ni)) {
+      sinds[i] = std::floor(coord[i] + 0.5) - ni/2;
+    }
+    else {
+      sinds[i] = std::ceil(coord[i]) - ni/2;
+    }
   }
 
   for (unsigned int i=_ndim; i<5; i++) sinds[i] = 0;