diff --git a/Code/Simulation/otbSpectralResponse.txx b/Code/Simulation/otbSpectralResponse.txx
index 9307dde59739234338b064f9fc696da749378000..bc5cc02f98216c9acfc32fb5fcb18aa050236ed4 100644
--- a/Code/Simulation/otbSpectralResponse.txx
+++ b/Code/Simulation/otbSpectralResponse.txx
@@ -241,9 +241,10 @@ typename SpectralResponse<TPrecision, TValuePrecision>::FilterFunctionValuesPoin
 
   //Assume that the SR is sorted
   typename FilterFunctionValuesType::ValuesVectorType valuesVector;
+  const Self& responseCalculator = *this;
   for (double i = m_Response.front()->first; i <= m_Response.back()->first; i += step)
     {
-    valuesVector.push_back = (*this)(i);
+    valuesVector.push_back( responseCalculator(i) );
     }
   FilterFunctionValuesPointerType functionValues = FilterFunctionValuesType::New();