diff --git a/Code/OBIA/otbFusionOGRTileFilter.h b/Code/OBIA/otbFusionOGRTileFilter.h
index ed18d633a0abc0d455117d76a1e93fb91d55317c..aa6676c62498dde56aafc5eb794642e91abcb6d2 100644
--- a/Code/OBIA/otbFusionOGRTileFilter.h
+++ b/Code/OBIA/otbFusionOGRTileFilter.h
@@ -20,9 +20,9 @@
 
 #include "otbOGRDataSourceWrapper.h"
 
-#if(GDAL_VERSION_NUM < 1800)
-#error FusionOGRTileFilter requires GDAL version >= 1.8.0
-#endif
+//#if(GDAL_VERSION_NUM < 1800)
+//#error FusionOGRTileFilter requires GDAL version >= 1.8.0
+//#endif
 
 #include "itkProcessObject.h"
 
@@ -121,7 +121,13 @@ protected:
   } SortFeature;
   
   void ProcessStreamingLine(bool line);
-  
+  /** get length in case of  OGRGeometryCollection.
+   * This function recodes the get_lenght method available since gdal 1.8.0 
+   * in the case of OGRGeometryCollection. The aim is allow to access polygon stiching  
+   * functionalities with gdal 1.6.
+   */
+  double GetLengthOGRGeometryCollection(OGRGeometryCollection * intersection);
+
 private:
   FusionOGRTileFilter(const Self &);  //purposely not implemented
   void operator =(const Self&);      //purposely not implemented
diff --git a/Code/OBIA/otbFusionOGRTileFilter.txx b/Code/OBIA/otbFusionOGRTileFilter.txx
index 4d33c185f8c6ddf60349d31db689b18542bd3cff..27cdf154541d7884bc81a03d0aad8ba5ed5f28d3 100644
--- a/Code/OBIA/otbFusionOGRTileFilter.txx
+++ b/Code/OBIA/otbFusionOGRTileFilter.txx
@@ -73,7 +73,30 @@ FusionOGRTileFilter<TInputImage>
    return static_cast<OGRDataSourceType *> (this->itk::ProcessObject::GetInput(1));
 }
 
-
+template<class TInputImage>
+double
+FusionOGRTileFilter<TInputImage>
+::GetLengthOGRGeometryCollection( OGRGeometryCollection * intersection )
+{
+  double dfLength = 0.0;
+  for( int iGeom = 0; iGeom < intersection->getNumGeometries(); iGeom++ )
+    {
+      OGRGeometry* geom = intersection->getGeometryRef(iGeom); 
+      switch( wkbFlatten(geom->getGeometryType()) )
+	{
+	case wkbLinearRing:
+	case wkbLineString:
+	  dfLength += ((OGRCurve *) geom)->get_Length();
+	  break;
+	case wkbGeometryCollection:
+	  dfLength += GetLengthOGRGeometryCollection(dynamic_cast<OGRGeometryCollection *> (geom));
+	  break;
+	default:
+	  break;
+	}
+    }
+  return dfLength;
+}
 template<class TInputImage>
 void
 FusionOGRTileFilter<TInputImage>
@@ -210,8 +233,13 @@ FusionOGRTileFilter<TInputImage>
                      }
                      else if (intersection->getGeometryType() == wkbMultiLineString)
                      {
-                        fusion.overlap = dynamic_cast<OGRMultiLineString *>(intersection.get())->get_Length();
-                     }
+                        #if(GDAL_VERSION_NUM < 1800)
+			fusion.overlap = GetLengthOGRGeometryCollection(dynamic_cast<OGRGeometryCollection *> (intersection.get()));
+                        #else
+			fusion.overlap = dynamic_cast<OGRMultiLineString *>(intersection.get())->get_Length();
+                        #endif
+		     }
+	     
                      
                      long upperFID = upper.feat.GetFID();
                      long lowerFID = lower.feat.GetFID();
diff --git a/Testing/Code/OBIA/CMakeLists.txt b/Testing/Code/OBIA/CMakeLists.txt
index 9a2492c9ac79c2651e1ca3e2c92e3dd1c032c57d..1706d330cb922ea48810d174ba8dd1d5155d6dc3 100644
--- a/Testing/Code/OBIA/CMakeLists.txt
+++ b/Testing/Code/OBIA/CMakeLists.txt
@@ -270,7 +270,7 @@ ADD_TEST(obTvStreamingVectorizedSegmentationOGR ${OBIA_TESTS1}
      )
 
 
-IF(${GDAL_NUM_VERSION} VERSION_GREATER "10800")
+#IF(${GDAL_NUM_VERSION} VERSION_GREATER "10800")
 # -------            otb::FusionOGRTileFilter   -------------
 ADD_TEST(obTuFusionOGRTileFilter ${OBIA_TESTS1}
 #     --compare-ogr  ${EPSILON_8}
@@ -283,7 +283,7 @@ ADD_TEST(obTuFusionOGRTileFilter ${OBIA_TESTS1}
     layer
     112
     )
-ENDIF(${GDAL_NUM_VERSION} VERSION_GREATER "10800")
+#ENDIF(${GDAL_NUM_VERSION} VERSION_GREATER "10800")
 
 # OBIATests2 (need PQXX)
 IF(OTB_USE_PQXX)
@@ -353,9 +353,9 @@ otbStreamingVectorizedSegmentationOGR.cxx
 otbFusionOGRTileFilter.cxx
 )
 
-IF(${GDAL_NUM_VERSION} VERSION_LESS "10800")
-LIST(REMOVE_ITEM BasicOBIA_SRCS1 otbFusionOGRTileFilter.cxx)
-ENDIF(${GDAL_NUM_VERSION} VERSION_LESS "10800")
+#IF(${GDAL_NUM_VERSION} VERSION_LESS "10800")
+#LIST(REMOVE_ITEM BasicOBIA_SRCS1 otbFusionOGRTileFilter.cxx)
+#ENDIF(${GDAL_NUM_VERSION} VERSION_LESS "10800")
 
 
 IF(OTB_USE_PQXX)
diff --git a/Testing/Code/OBIA/otbOBIATests1.cxx b/Testing/Code/OBIA/otbOBIATests1.cxx
index d3884c23c5e2cd830591cad1272495711c50d87c..f8a2a3c60c6218f94b8644087750685b86d9358a 100644
--- a/Testing/Code/OBIA/otbOBIATests1.cxx
+++ b/Testing/Code/OBIA/otbOBIATests1.cxx
@@ -68,7 +68,7 @@ REGISTER_TEST(otbLabelImageToOGRDataSourceFilterNew);
 REGISTER_TEST(otbLabelImageToOGRDataSourceFilter);
 REGISTER_TEST(otbStreamingVectorizedSegmentationOGRNew);
 REGISTER_TEST(otbStreamingVectorizedSegmentationOGR);
-#if GDAL_VERSION_NUM >= 1800
+//#if GDAL_VERSION_NUM >= 1800
 REGISTER_TEST(otbFusionOGRTileFilter);
-#endif
+//#endif
 }