diff --git a/Code/ChangeDetection/otbCorrelationChangeDetector.h b/Code/ChangeDetection/otbCorrelationChangeDetector.h
index a87c8f11d4b8900d12fdcb64d95ff1af327b6164..b9c71dac0fe33e8d44b81b22e8df00e976e6952a 100755
--- a/Code/ChangeDetection/otbCorrelationChangeDetector.h
+++ b/Code/ChangeDetection/otbCorrelationChangeDetector.h
@@ -89,14 +89,17 @@ public:
 
     TOutput crossCorrel = 0.0;
 
-    for(unsigned long pos = 0; pos< itA.Size(); ++pos)
-      {
-	if(varA!=0 && varB!=0)
+    if(varA!=0 && varB!=0)
 	  {
-	    crossCorrel += (static_cast<TOutput>(itA.GetPixel(pos))-meanA)*(static_cast<TOutput>(itB.GetPixel(pos))-meanB)/(itA.Size()*vcl_sqrt(varA*varB));
+	    for(unsigned long pos = 0; pos< itA.Size(); ++pos)
+	      {
+		crossCorrel += (static_cast<TOutput>(itA.GetPixel(pos))-meanA)*(static_cast<TOutput>(itB.GetPixel(pos))-meanB)/(itA.Size()*vcl_sqrt(varA*varB));
+	      }
 	  }
+    else if(varA==0 && varB==0)
+      {
+	crossCorrel = 1;	
       }
-
     return static_cast<TOutput>( 1.0-crossCorrel );
   }
 };