Index: XIOS/trunk/src/node/domain.cpp
===================================================================
--- XIOS/trunk/src/node/domain.cpp	(revision 733)
+++ XIOS/trunk/src/node/domain.cpp	(revision 734)
@@ -338,6 +338,6 @@
      double latRange = lat_end - lat_start;
 
-     double lonStep = lonRange/double(ni_glo.getValue());
-     double latStep = latRange/double(nj_glo.getValue());
+     double lonStep = (1 == ni_glo.getValue()) ? lonRange : lonRange/double(ni_glo.getValue()-1);
+     double latStep = (1 == nj_glo.getValue()) ? latRange : latRange/double(nj_glo.getValue()-1);
 
      // Assign lon value
@@ -423,4 +423,5 @@
          int nbClient;
          MPI_Comm_size(client->intraComm,&nbClient);
+         it->second->checkValid(this);
          this->redistribute(nbClient);
          break;
Index: XIOS/trunk/src/node/generate_rectilinear_domain.cpp
===================================================================
--- XIOS/trunk/src/node/generate_rectilinear_domain.cpp	(revision 733)
+++ XIOS/trunk/src/node/generate_rectilinear_domain.cpp	(revision 734)
@@ -71,21 +71,12 @@
                << "Define only one attribute: 'bounds_lat_start' or 'lat_start'.");
 
-    if (!bounds_lon_start.isEmpty() && !lat_start.isEmpty())
-         ERROR("CGenerateRectilinearDomain::checkValid(CDomain* domainDst)",
-               << "[ id = " << this->getId() << " , context = '" << CObjectFactory::GetCurrentContextId() << " ] "
-               << "Only one latitude boundary attribute or latitude can be used but both 'bounds_lon_start' and 'lat_start' are defined." << std::endl
-               << "Define only one pair of attributes: ('bounds_lon_start' and 'bounds_lat_start') or ('lon_start' and 'lat_start').");
-
-    if (!bounds_lat_start.isEmpty() && !lon_start.isEmpty())
-         ERROR("CGenerateRectilinearDomain::checkValid(CDomain* domainDst)",
-               << "[ id = " << this->getId() << " , context = '" << CObjectFactory::GetCurrentContextId() << " ] "
-               << "Only one latitude boundary attribute or latitude can be used but both 'bounds_lat_start' and 'lon_start' are defined." << std::endl
-               << "Define only one pair of attributes: ('bounds_lon_start' and 'bounds_lat_start') or ('lon_start' and 'lat_start').");
-
-    if (bounds_lon_start.isEmpty() && bounds_lat_start.isEmpty() &&
-        lon_start.isEmpty() && lat_start.isEmpty())
+    if (bounds_lon_start.isEmpty() && lon_start.isEmpty())
     {
       bounds_lon_start.setValue(defaultBndsLonStart);
       bounds_lon_end.setValue(defaultBndsLonEnd);
+    }
+
+    if (bounds_lat_start.isEmpty() && lat_start.isEmpty())
+    {
       bounds_lat_start.setValue(defaultBndsLatStart);
       bounds_lat_end.setValue(defaultBndsLatEnd);
@@ -97,5 +88,5 @@
 
       double boundsLonRange = bounds_lon_end - bounds_lon_start;
-      double boundsLonStep = boundsLonRange/double(niGlo);
+      double boundsLonStep = boundsLonRange/(double(niGlo));
       domainDst->bounds_lon_start = bounds_lon_start;
       domainDst->bounds_lon_end   = bounds_lon_end;
@@ -109,5 +100,5 @@
 
       double boundsLatRange = bounds_lat_end - bounds_lat_start;
-      double boundsLatStep = boundsLatRange/double(njGlo);
+      double boundsLatStep = boundsLatRange/(double(njGlo));
       domainDst->bounds_lat_start = bounds_lat_start;
       domainDst->bounds_lat_end   = bounds_lat_end;
@@ -123,5 +114,5 @@
 
       double lonRange = lon_end - lon_start;
-      double lonStep = lonRange/double(niGlo);
+      double lonStep = (1 == niGlo) ? lonRange : lonRange/(double(niGlo)-1);
       domainDst->lon_start = lon_start;
       domainDst->lon_end   = lon_end;
@@ -135,5 +126,5 @@
 
       double latRange = lat_end - lat_start;
-      double latStep = latRange/double(njGlo);
+      double latStep = (1 == njGlo) ? latRange : latRange/(double(njGlo)-1);
       domainDst->lat_start = lat_start;
       domainDst->lat_end   = lat_end;
Index: XIOS/trunk/src/test/test_remap.f90
===================================================================
--- XIOS/trunk/src/test/test_remap.f90	(revision 733)
+++ XIOS/trunk/src/test/test_remap.f90	(revision 734)
@@ -129,8 +129,8 @@
 
   DO ts=1,1
-!    CALL xios_recv_field("src_field_regular", tmp_field)
+    CALL xios_recv_field("src_field_regular", tmp_field)
     CALL xios_update_calendar(ts)
     CALL xios_send_field("src_field",src_field)
-!    CALL xios_send_field("tmp_field",tmp_field)
+    CALL xios_send_field("tmp_field",tmp_field)
     CALL wait_us(5000) ;
   ENDDO
Index: XIOS/trunk/src/transformation/grid_transformation.cpp
===================================================================
--- XIOS/trunk/src/transformation/grid_transformation.cpp	(revision 733)
+++ XIOS/trunk/src/transformation/grid_transformation.cpp	(revision 734)
@@ -54,4 +54,5 @@
     CDomain* domain = CDomain::createDomain();
     domain->setAttributes(domainSrcTmp[idx]);
+    domain->solveInheritanceTransformation();
     domain->checkAttributesOnClient();
     domainSrc.push_back(domain);
