diff --git a/OBIA/OBIABase.py b/OBIA/OBIABase.py
index 48d8889d6514d4e2988c69d91741cb1088d13d79..90abe476d58620e9522c903483d6347bccd490c4 100644
--- a/OBIA/OBIABase.py
+++ b/OBIA/OBIABase.py
@@ -174,11 +174,14 @@ class OBIABase:
             tile_obj = np.squeeze(clip_obj['array']).astype(np.uint32)
         else:
             assert (self.ref_obj_layer_pipe is not None)
-            self.ref_obj_layer_pipe[-1].PropagateRequestedRegion('out', r)
-            tile_obj = self.ref_obj_layer_pipe[-1].GetImageAsNumpyArray('out').astype(np.uint32)
-
-            #tile_obj = self.ref_obj_layer[r['index'][1]:r['index'][1]+r['size'][1],
-            #           r['index'][0]:r['index'][0]+r['size'][0]]
+            tmp_er = otb.Registry.CreateApplication('ExtractROI')
+            tmp_er.SetParameterInputImage('in', self.ref_obj_layer_pipe[-1].GetParameterOutputImage('out'))
+            tmp_er.SetParameterInt('startx', r['index'][0])
+            tmp_er.SetParameterInt('starty', r['index'][1])
+            tmp_er.SetParameterInt('sizex', r['size'][0])
+            tmp_er.SetParameterInt('sizey', r['size'][1])
+            tmp_er.Execute()
+            tile_obj = tmp_er.GetImageAsNumpyArray('out').astype(np.uint32)
 
         si = otb.Registry.CreateApplication('Superimpose')
         si.SetParameterString('inm', input_image)