diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/InDetDetectorManager.h b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/InDetDetectorManager.h
index 5765370a8b25920b0d22dced1512d14052932777..ec30e328f79d69888803ab2e11dfd82349b54619 100755
--- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/InDetDetectorManager.h
+++ b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/InDetDetectorManager.h
@@ -169,8 +169,13 @@ namespace InDetDD {
                                               const Amg::Transform3D & delta,
                                               FrameType frame,
                                               GeoVAlignmentStore* alignStore=nullptr) const = 0;
-    
-      virtual bool processSpecialAlignment(const std::string & key, InDetDD::AlignFolderType alignfolder) const;
+
+      virtual bool processSpecialAlignment(const std::string & key,
+                                           InDetDD::AlignFolderType alignfolder) const = 0;
+
+      virtual bool processSpecialAlignment(const std::string& key,
+                                           const CondAttrListCollection* obj=nullptr,
+                                           GeoVAlignmentStore* alignStore=nullptr) const = 0;
 
       bool processGlobalAlignmentContainer(const std::string & key,
                                            const CondAttrListCollection* obj=nullptr,
diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelDetectorManager.h b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelDetectorManager.h
index 7d42b82f07c15fa4f3079099f022733278f0d211..9f3cadbcda506e2432f88d58279489cd9ddbcde6 100755
--- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelDetectorManager.h
+++ b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelDetectorManager.h
@@ -128,7 +128,11 @@ namespace InDetDD {
       virtual const PixelModuleDesign * getPixelDesign(int i) const;
 
       /** Process new IBLDist DB folder **/
-      bool processSpecialAlignment(const std::string &, InDetDD::AlignFolderType) const;
+      bool processSpecialAlignment(const std::string &, InDetDD::AlignFolderType) const override;
+
+      bool processSpecialAlignment(const std::string& key,
+                                   const CondAttrListCollection* obj=nullptr,
+                                   GeoVAlignmentStore* alignStore=nullptr) const override;
 
       /** Process new global DB folders for L1 and L2 **/
       bool processGlobalAlignment(const std::string &, int level, FrameType frame,
diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/SCT_DetectorManager.h b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/SCT_DetectorManager.h
index bf936f02197645f2e9cf6d752d609b091fd2ccc9..93e6c5d3d1f8a123e5f84d4caf9d8939ac759b3b 100755
--- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/SCT_DetectorManager.h
+++ b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/SCT_DetectorManager.h
@@ -114,8 +114,17 @@ namespace InDetDD {
       bool processGlobalAlignment(const std::string &, int level, FrameType frame,
                                   const CondAttrListCollection* obj,
                                   GeoVAlignmentStore* alignStore) const;
-    
-    private:  
+
+      // comply with InDetDetectorManager interface
+      bool processSpecialAlignment(const std::string & key,
+                                   InDetDD::AlignFolderType alignfolder) const override;
+
+      bool processSpecialAlignment(const std::string& key,
+                                   const CondAttrListCollection* obj=nullptr,
+                                   GeoVAlignmentStore* alignStore=nullptr) const override;
+
+
+    private:
       /** implements the main alignment update for delta transforms in different frames,
           it translates into the LocalDelta or GlobalDelta function of SiDetectorManager
       */
diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/TRT_DetectorManager.h b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/TRT_DetectorManager.h
index b79ad864f284c310d02fb84066b4fb6a2bc18185..d4c64548cce1fc70ee714f59e77454fa16c6c832 100755
--- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/TRT_DetectorManager.h
+++ b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/TRT_DetectorManager.h
@@ -219,9 +219,15 @@ namespace InDetDD {
     bool processGlobalAlignment(const std::string &, int level, FrameType frame,
                                 const CondAttrListCollection* obj,
                                 GeoVAlignmentStore* alignStore) const;
- 
- private:  
-  
+
+    bool processSpecialAlignment(const std::string & key, InDetDD::AlignFolderType dummy) const override;
+
+    bool processSpecialAlignment(const std::string& key,
+                                 const CondAttrListCollection* obj=nullptr,
+                                 GeoVAlignmentStore* alignStore=nullptr) const override;
+
+ private:
+
 
     // Illegal operations:---------------------------------------------------------//
     //                                                                             //
@@ -262,7 +268,6 @@ namespace InDetDD {
 
     // here temporarily
     virtual const TRT_ID *getIdHelper() const;                                             //
-    virtual bool processSpecialAlignment(const std::string & key, InDetDD::AlignFolderType dummy) const;
 
     //-----------------------------------------------------------------------------//
   };
diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/InDetDetectorManager.cxx b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/InDetDetectorManager.cxx
index ae8514eb2cef70331012c42f192b7bbe102171c3..214a0feb4047d4eec72922e1d9caf795aa83a2c8 100755
--- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/InDetDetectorManager.cxx
+++ b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/InDetDetectorManager.cxx
@@ -251,6 +251,10 @@ namespace InDetDD
             } 
             else if(m_specialFolders.find(key)!=m_specialFolders.end()) {
                 // To Do: do we really need this?
+                // => Yes, this is where the IBL bowing is handled
+
+                ATH_MSG_FATAL("Special folder " << key << " handling requested, but not currently implemented!");
+                return StatusCode::FAILURE;
 
                 /*
                   try {
diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/PixelDetectorManager.cxx b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/PixelDetectorManager.cxx
index 9139354154ec9b80da2f56c320456ed137118dbe..166c10472157d41b8918af1d16e8e691060374de 100755
--- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/PixelDetectorManager.cxx
+++ b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/PixelDetectorManager.cxx
@@ -458,6 +458,12 @@ namespace InDetDD {
   return alignmentChange;
   }
 
+  bool PixelDetectorManager::processSpecialAlignment(const std::string& /*key*/,
+                                                     const CondAttrListCollection* /*obj*/,
+                                                     GeoVAlignmentStore* /*alignStore*/) const {
+    return false;
+  }
+
   // New global alignment folders
   bool PixelDetectorManager::processGlobalAlignment(const std::string & key, int level, FrameType frame, const CondAttrListCollection* /*obj*/, GeoVAlignmentStore* alignStore) const
   {
diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/SCT_DetectorManager.cxx b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/SCT_DetectorManager.cxx
index 4ac1b74552a04ed7514aa2fc349fcb46eca5107d..4a78fe55b957397e1c69cf252f76923ba97caf32 100755
--- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/SCT_DetectorManager.cxx
+++ b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/SCT_DetectorManager.cxx
@@ -393,5 +393,16 @@ namespace InDetDD {
     return alignmentChange;
   }
 
+bool SCT_DetectorManager::processSpecialAlignment(
+    const std::string &, InDetDD::AlignFolderType) const {
+  return false;
+}
+
+bool SCT_DetectorManager::processSpecialAlignment(const std::string& /*key*/,
+                                                  const CondAttrListCollection* /*obj*/,
+                                                  GeoVAlignmentStore* /*alignStore*/) const {
+  return false;
+
+}
 
 } // namespace InDetDD
diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/TRT_DetectorManager.cxx b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/TRT_DetectorManager.cxx
index 43f1ab2de4755001267d3af4f962deb340a07782..3d3417d1d20982cd13890829119c6bad298a0a22 100755
--- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/TRT_DetectorManager.cxx
+++ b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/TRT_DetectorManager.cxx
@@ -630,6 +630,12 @@ namespace InDetDD {
         }
     }
 
+    bool TRT_DetectorManager::processSpecialAlignment(const std::string& /*key*/,
+                                                      const CondAttrListCollection* /*obj*/,
+                                                      GeoVAlignmentStore* /*alignStore*/) const {
+      return false;
+    }
+
 
     void TRT_DetectorManager::setConditions(TRT_Conditions * conditions)
     {