diff --git a/examples/ClientTests/compact/MiniTelGenerate.xml b/examples/ClientTests/compact/MiniTelGenerate.xml
index 4283312aa7d7ee8b814d7f515da5511e4aa0be96..8380e14275f89da30071f7c63e64f12303e96417 100644
--- a/examples/ClientTests/compact/MiniTelGenerate.xml
+++ b/examples/ClientTests/compact/MiniTelGenerate.xml
@@ -46,39 +46,39 @@
     <detector name="Minitel1" type="MiniTelPixel" material="Silicon" vis="DetVis" id ="1" sensitive="true" readout="Minitel1Hits" limits="minitel_limits_1" region="minitel_region_1">
       <dimensions z="1*mm" y="10*cm" x="10*cm" />
       <module name="pixel" type="MiniTelPixel" material="Silicon" x="6*mm" y="6*mm" z="1*mm" vis="ModVis1" alpha="-2.*radian" beta="-2.*radian" gamma="-0.*radian" />
-      <side_position   z="30*mm" y="0*cm" x="0*cm" />
+      <side_position   z="50*mm" y="0*cm" x="0*cm" />
+      <module_position z="-40*mm" y="0*cm" x="0*cm" />
+      <module_position z="-30*mm" y="0*cm" x="0*cm" />
+      <module_position z="-20*mm" y="0*cm" x="0*cm" />
+      <module_position z="-10*mm" y="0*cm" x="0*cm" />
+      <module_position z="0*mm" y="0*cm" x="0*cm" />
       <module_position z="10*mm" y="0*cm" x="0*cm" />
       <module_position z="20*mm" y="0*cm" x="0*cm" />
       <module_position z="30*mm" y="0*cm" x="0*cm" />
       <module_position z="40*mm" y="0*cm" x="0*cm" />
-      <module_position z="50*mm" y="0*cm" x="0*cm" />
-      <module_position z="60*mm" y="0*cm" x="0*cm" />
-      <module_position z="70*mm" y="0*cm" x="0*cm" />
-      <module_position z="80*mm" y="0*cm" x="0*cm" />
-      <module_position z="90*mm" y="0*cm" x="0*cm" />
       <reflect/>
     </detector>
     <detector name="Minitel2" type="MiniTelPixel" material="Silicon" vis="DetVis" id ="2" sensitive="true" readout="Minitel2Hits" limits="minitel_limits_1" region="minitel_region_1">
       <dimensions z="2*mm" y="15*cm" x="15*cm" />
       <module name="pixel" type="MiniTelPixel" material="Silicon" x="6*mm" y="6*mm" z="1*mm" vis="ModVis2" alpha="-2.*radian" beta="-2.*radian" gamma="-0.*radian" />
       <side_position   z="130*mm" y="0*cm" x="0*cm" />
+      <module_position z="-30*mm" y="0*cm" x="0*cm" />
+      <module_position z="-20*mm" y="0*cm" x="0*cm" />
+      <module_position z="-10*mm" y="0*cm" x="0*cm" />
       <module_position z="10*mm" y="0*cm" x="0*cm" />
       <module_position z="20*mm" y="0*cm" x="0*cm" />
       <module_position z="30*mm" y="0*cm" x="0*cm" />
-      <module_position z="40*mm" y="0*cm" x="0*cm" />
-      <module_position z="50*mm" y="0*cm" x="0*cm" />
-      <module_position z="60*mm" y="0*cm" x="0*cm" />
       <reflect/>
     </detector>
     <detector name="Minitel3" type="MiniTelPixel" material="Silicon" vis="DetVis" id ="3" sensitive="true" readout="Minitel3Hits" limits="minitel_limits_1" region="minitel_region_1">
       <dimensions z="4*mm" y="20*cm" x="20*cm" />
       <module name="pixel" type="MiniTelPixel" material="Silicon" x="6*mm" y="6*mm" z="1*mm" vis="ModVis3" alpha="-2.*radian" beta="-2.*radian" gamma="-0.*radian" />
       <side_position   z="200*mm" y="0*cm" x="0*cm" />
+      <module_position z="-20*mm" y="0*cm" x="0*cm" />
+      <module_position z="-10*mm" y="0*cm" x="0*cm" />
+      <module_position z="0*mm" y="0*cm" x="0*cm" />
       <module_position z="10*mm" y="0*cm" x="0*cm" />
       <module_position z="20*mm" y="0*cm" x="0*cm" />
-      <module_position z="30*mm" y="0*cm" x="0*cm" />
-      <module_position z="40*mm" y="0*cm" x="0*cm" />
-      <module_position z="50*mm" y="0*cm" x="0*cm" />
       <reflect/>
     </detector>
   </detectors>
diff --git a/examples/ClientTests/src/MiniTel.cpp b/examples/ClientTests/src/MiniTel.cpp
index 4bbdbf12f9dfef0cbb34c15af5012855d839b756..b91a018452cfc773879e2429bcbebeab345f3485 100644
--- a/examples/ClientTests/src/MiniTel.cpp
+++ b/examples/ClientTests/src/MiniTel.cpp
@@ -68,7 +68,8 @@ static Ref_t create_detector(Detector &description, xml_h e, SensitiveDetector s
 
   assembly.setVisAttributes(description.visAttributes(x_det.visStr()));
 
-  Volume sensor_vol(det_name, Box(det_dim.x(),det_dim.y(),det_dim.z()), mat);
+  Box    sensor_box(Box(det_dim.x(),det_dim.y(),det_dim.z()));
+  Volume sensor_vol(det_name, sensor_box, mat);
   sensor_vol.setVisAttributes(description.visAttributes(det_mod.visStr()));
   sensor_vol.setLimitSet(description, x_det.limitsStr());
   sensor_vol.setRegion(description, x_det.regionStr());
@@ -76,19 +77,42 @@ static Ref_t create_detector(Detector &description, xml_h e, SensitiveDetector s
   if ( x_det.isSensitive() ) {
     sens.setType("tracker");
   }
-
   int count = 0;
   PlacedVolume pv;
   DetElement   side_det;
-  Assembly     side_vol;
+  double       epsilon = 1e-10; 
   Position     side_pos(0,0,30*dd4hep::mm);
+  Position     env_dim_min(sensor_box.x()+epsilon, sensor_box.y()+epsilon, +100000.0);
+  Position     env_dim_max(sensor_box.x()+epsilon, sensor_box.y()+epsilon, -100000.0);
+
+  for( xml_coll_t m(x_det, _U(module_position)); m; m++ )    {
+    xml_comp_t x_pos = m;
+    if ( x_pos.z() > env_dim_max.z() ) {
+      env_dim_max.SetZ(x_pos.z());
+      printout(ALWAYS,"","z_max = %f",x_pos.z());
+    }
+    if ( x_pos.z() < env_dim_min.z() )  {
+      env_dim_min.SetZ(x_pos.z());
+      printout(ALWAYS,"","z_min = %f",x_pos.z());
+    }
+  }
 
+  Volume side_vol;
+  if ( x_det.hasChild(_U(assembly)) )   {
+    side_vol = Assembly("side_0");
+  }
+  else   {
+    Box side_box(env_dim_max.x(), env_dim_max.y(), (env_dim_max.z()-env_dim_min.z())/2.0+sensor_box.z() + epsilon);
+    printout(ALWAYS,"","Box = %f",side_box.z());
+    side_vol = Volume("side_0", side_box, description.air());
+  }
   side_det = DetElement(sdet,"side_0", x_det.id());
-  side_vol = Assembly("side_0");
   if ( x_det.hasChild(_U(side_position)) )  {
     xml_comp_t x_pos = x_det.child(_U(side_position));
     side_pos = Position(x_pos.x(0), x_pos.y(0), x_pos.z(3*dd4hep::cm));
+    printout(ALWAYS,"","side_pos = %f",side_pos.z());
   }
+
   pv = assembly.placeVolume(side_vol, side_pos);
   pv.addPhysVolID("side",0);
   side_det.setPlacement(pv);