Index: /XIOS/trunk/inputs/REMAP/iodef.xml
===================================================================
--- /XIOS/trunk/inputs/REMAP/iodef.xml	(revision 823)
+++ /XIOS/trunk/inputs/REMAP/iodef.xml	(revision 824)
@@ -8,4 +8,5 @@
    <field_definition level="1" >
      <field id="src_field" operation="instant" domain_ref="src_domain"/>
+     <field id="src_field_clone" operation="instant" field_ref="src_field" domain_ref="src_domain_clone"/>
      <field id="dst_field" operation="instant" field_ref="src_field" domain_ref="dst_domain"/>
      <field id="tmp_field" operation="instant" domain_ref="src_domain_regular_tmp"/>
@@ -21,4 +22,7 @@
      <file id="output" name="output">
         <field field_ref="src_field" name="field" />
+     </file>
+     <file id="output_clone" name="output_clone">
+        <field field_ref="src_field_clone" name="field" />
      </file>
      <file id="output_dst" name="output_dst" type="one_file">
@@ -61,4 +65,5 @@
    <domain_definition>
      <domain id="src_domain" />
+     <domain id="src_domain_clone" />
      <domain id="dst_domain">
        <interpolate_domain/>
Index: /XIOS/trunk/src/node/field.cpp
===================================================================
--- /XIOS/trunk/src/node/field.cpp	(revision 823)
+++ /XIOS/trunk/src/node/field.cpp	(revision 824)
@@ -770,5 +770,5 @@
      std::pair<boost::shared_ptr<CFilter>, boost::shared_ptr<CFilter> > filters;
      // Check if a spatial transformation is needed
-     if (grid && grid != fieldRef->grid)
+     if (grid && grid != fieldRef->grid && grid->hasTransform())
        filters = CSpatialTransformFilter::buildFilterGraph(gc, fieldRef->grid, grid);
      else
Index: /XIOS/trunk/src/node/grid.cpp
===================================================================
--- /XIOS/trunk/src/node/grid.cpp	(revision 823)
+++ /XIOS/trunk/src/node/grid.cpp	(revision 824)
@@ -32,5 +32,5 @@
       , transformations_(0), isTransformed_(false)
       , axisPositionInGrid_(), positionDimensionDistributed_(1), hasDomainAxisBaseRef_(false)
-      , gridSrc_()
+      , gridSrc_(), hasTransform_(false)
    {
      setVirtualDomainGroup();
@@ -47,5 +47,5 @@
       , transformations_(0), isTransformed_(false)
       , axisPositionInGrid_(), positionDimensionDistributed_(1), hasDomainAxisBaseRef_(false)
-      , gridSrc_()
+      , gridSrc_(), hasTransform_(false)
    {
      setVirtualDomainGroup();
@@ -1408,7 +1408,13 @@
     transformations_ = new CGridTransformation(this, transformGridSrc);
     transformations_->computeAll();
+    if (0 < transformations_->getNbAlgo()) hasTransform_ = true;
 
     // Ok, now need to compute index of grid source
     transformGridSrc->checkMaskIndex(false);
+  }
+
+  bool CGrid::hasTransform()
+  {
+    return hasTransform_;
   }
 
Index: /XIOS/trunk/src/node/grid.hpp
===================================================================
--- /XIOS/trunk/src/node/grid.hpp	(revision 823)
+++ /XIOS/trunk/src/node/grid.hpp	(revision 824)
@@ -195,4 +195,5 @@
          void addTransGridSource(CGrid* gridSrc);
          std::map<CGrid*, std::pair<bool,StdString> >& getTransGridSource();
+         bool hasTransform();
 
       public:
@@ -273,4 +274,5 @@
         std::vector<int> globalDim_;
         std::map<CGrid*, std::pair<bool,StdString> > gridSrc_;
+        bool hasTransform_;
    }; // class CGrid
 
Index: /XIOS/trunk/src/test/test_remap.f90
===================================================================
--- /XIOS/trunk/src/test/test_remap.f90	(revision 823)
+++ /XIOS/trunk/src/test/test_remap.f90	(revision 824)
@@ -116,4 +116,8 @@
                             bounds_lon_1D=src_boundslon, bounds_lat_1D=src_boundslat, nvertex=src_nvertex)
 
+  CALL xios_set_domain_attr("src_domain_clone", ni_glo=src_ni_glo, ibegin=src_ibegin, ni=src_ni, type="unstructured")
+  CALL xios_set_domain_attr("src_domain_clone", lonvalue_1D=src_lon, latvalue_1D=src_lat, &
+                            bounds_lon_1D=src_boundslon, bounds_lat_1D=src_boundslat, nvertex=src_nvertex)
+
   CALL xios_set_domain_attr("dst_domain", ni_glo=dst_ni_glo, ibegin=dst_ibegin, ni=dst_ni, type="unstructured")
   CALL xios_set_domain_attr("dst_domain", lonvalue_1D=dst_lon, latvalue_1D=dst_lat, &
Index: /XIOS/trunk/src/transformation/grid_transformation.cpp
===================================================================
--- /XIOS/trunk/src/transformation/grid_transformation.cpp	(revision 823)
+++ /XIOS/trunk/src/transformation/grid_transformation.cpp	(revision 824)
@@ -355,4 +355,6 @@
 void CGridTransformation::computeAll()
 {
+  if (nbAlgos_ < 1) return;
+
   CContext* context = CContext::getCurrent();
   CContextClient* client = context->client;
Index: /XIOS/trunk/src/transformation/grid_transformation.hpp
===================================================================
--- /XIOS/trunk/src/transformation/grid_transformation.hpp	(revision 823)
+++ /XIOS/trunk/src/transformation/grid_transformation.hpp	(revision 824)
@@ -48,4 +48,5 @@
   CGrid* getGridDestination() { return gridDestination_; }
   ListAlgoType getAlgoList() const {return listAlgos_; }
+  int getNbAlgo() { return nbAlgos_; }
 
 protected:
