diff --git a/compact/ci_GEM.xml b/compact/ci_GEM.xml
index 22c8bee7938e6096ed3c967dcede2a7cfedc20f9..a42a38e2967632a00dc4f780b96328b9acc27596 100644
--- a/compact/ci_GEM.xml
+++ b/compact/ci_GEM.xml
@@ -44,8 +44,7 @@
     </comment>
     <detector id="ci_GEM_id" name="ci_GEM" type="ci_GEM" insideTrackingVolume="false" vis="ci_GEMVis">
 	    <material name="Ar10CO2"/>  
-      <dimensions rmin="ci_GEM_rin" rmax="ci_GEM_rout" z_length="ci_GEM_sizez" z_offset="ci_GEM_shiftz"	z="ci_GEM_posz" x="ci_GEM_posx" number="ci_GEM_nlayers"/>
-
+      <dimensions rmin="ci_GEM_rin" rmax="ci_GEM_rout" z_length="ci_GEM_sizez" z_offset="ci_GEM_shiftz"	z="ci_GEM_posz" x="ci_GEM_posx" number="ci_GEM_nlayers" rmax1="ci_HCAL_lay_rin -1*cm"/>
       <layer id="0" z="-ci_GEM_sizez * 0.5 + (5 + 3. * 0) * cm" inner_r="ci_GEM_rin + (1. + 0.5 * 0) * cm" outer_r="ci_GEM_rout + (-25. + 2. * 0) * cm" dz="1 * cm" />
       <layer id="1" z="-ci_GEM_sizez * 0.5 + (5 + 3. * 1) * cm" inner_r="ci_GEM_rin + (1. + 0.5 * 1) * cm" outer_r="ci_GEM_rout + (-25. + 2. * 1) * cm" dz="1 * cm" />
       <layer id="2" z="-ci_GEM_sizez * 0.5 + (5 + 3. * 2) * cm" inner_r="ci_GEM_rin + (1. + 0.5 * 2) * cm" outer_r="ci_GEM_rout + (-25. + 2. * 2) * cm" dz="1 * cm" />
diff --git a/reference_detector.xml b/reference_detector.xml
index e8d01e017d1583fffc3c860a0d31b323c5e2e570..2913e11bc7b7fc944e21857f6de817e78e273255 100644
--- a/reference_detector.xml
+++ b/reference_detector.xml
@@ -114,22 +114,23 @@
   <include ref="reference_detector/vertex_tracker.xml"/>
   <include ref="compact/silicon_tracker.xml"/>
   -->
-
+  
   <include ref="ip6/beampipe.xml"/>
   <include ref="compact/solenoid.xml"/>
   <include ref="compact/ecal.xml"/>
   <include ref="compact/hcal.xml"/>
   <include ref="compact/forward_rich.xml"/>
   <include ref="compact/ce_mrich.xml"/>
+
 	<include ref="compact/ci_HCAL.xml"/>
   <include ref="compact/ci_GEM.xml"/>
   
   <!--
   <include ref="compact/roman_pots.xml"/>
   -->
-
+<!--
   <include ref="eic/forward_ion_beamline.xml"/>
-  
+-->  
   
 
   <detectors>
diff --git a/src/ci_GEM.cpp b/src/ci_GEM.cpp
index 39f53b7ec874d77576845a56392d1c2050a40ecc..73cb6363eb225fd84c85d682f729f2ce6ceb1c63 100644
--- a/src/ci_GEM.cpp
+++ b/src/ci_GEM.cpp
@@ -19,6 +19,7 @@ static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens
   double X                = dims.x();
   double Z                = dims.z();
   int Nlayers             = dims.number();
+  double HCAL_rmin        = dims.rmax1();        // Maximum radius that the layer can be
   Material mat            = desc.material(detElem.materialStr());
   Material vac            = desc.material("Vacuum");
 
@@ -30,8 +31,10 @@ static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens
   for (xml_coll_t li(detElem,_U(layer)); li; ++li){
   	xml_comp_t x_layer = li;
   	std::string layer_name = detName + _toString(x_layer.id(), "_layer%d");
+  	double outer_r = x_layer.outer_r();
+  	if (outer_r > HCAL_rmin){outer_r = HCAL_rmin;}
 
-  	Volume layer_vol(layer_name, Tube(x_layer.inner_r(), x_layer.outer_r(), x_layer.dz()), mat);
+  	Volume layer_vol(layer_name, Tube(x_layer.inner_r(), outer_r, x_layer.dz()), mat);
   	layer_vol.setVisAttributes(desc.visAttributes(detElem.visStr()));
   	Position layer_pos(0, 0, x_layer.z());
   	PlacedVolume layer_phv = detVol.placeVolume(layer_vol, layer_pos);