diff --git a/image_expressions_cpp.py b/image_expressions_cpp.py
index b2c3aa7de0ef3e6a56d79ecb09cd5c3822352ac7..a360e3283bb9ec7dd0d718145e2cf1df0cad5857 100644
--- a/image_expressions_cpp.py
+++ b/image_expressions_cpp.py
@@ -112,9 +112,6 @@ public:
         vtkSmartPointer<vtkUnstructuredGrid> mesh = reader->GetOutput();
 
         probe_filter->SetSourceData(mesh);
-        probe_points->SetNumberOfPoints(1);
-        probe_polydata->SetPoints(probe_points);
-        probe_filter->SetInputData(probe_polydata);
     }''')*(u_is_vtk))*(im_is_def)+'''
 
     void init_image(
@@ -171,7 +168,10 @@ public:
 
         U->eval(UX, X);''')*(not u_is_vtk)+('''
 
+        probe_points->SetNumberOfPoints(1);
         probe_points->SetPoint(0,X.data());
+        probe_polydata->SetPoints(probe_points);
+        probe_filter->SetInputData(probe_polydata);
         probe_filter->Update();
         probe_filter->GetOutput()->GetPointData()->GetArray("U")->GetTuple(0, UX.data());