diff --git a/Event/ByteStreamCnvSvc/src/ByteStreamEventStorageOutputSvc.cxx b/Event/ByteStreamCnvSvc/src/ByteStreamEventStorageOutputSvc.cxx
index 3ccda05b67dfe9fa63af78ea5b0376e4cbb40eb2..7124fab87e0f382a44bbe3e91b31d29eb9cbc082 100644
--- a/Event/ByteStreamCnvSvc/src/ByteStreamEventStorageOutputSvc.cxx
+++ b/Event/ByteStreamCnvSvc/src/ByteStreamEventStorageOutputSvc.cxx
@@ -29,7 +29,7 @@
 
 ByteStreamEventStorageOutputSvc::ByteStreamEventStorageOutputSvc(
     const std::string& name, ISvcLocator* pSvcLocator)
-  : ByteStreamOutputSvc(name, pSvcLocator) {
+  : base_class(name, pSvcLocator) {
 }
 
 
@@ -445,11 +445,17 @@ ByteStreamEventStorageOutputSvc::updateDataWriterParameters(
 StatusCode
 ByteStreamEventStorageOutputSvc::queryInterface(
     const InterfaceID& riid, void** ppvInterface) {
+
+  if ( !ppvInterface ) return StatusCode::FAILURE;
+
+  // find indirect interfaces :
   if (ByteStreamOutputSvc::interfaceID().versionMatch(riid)) {
     *ppvInterface = dynamic_cast<ByteStreamOutputSvc*>(this);
+  } else if (base_class::queryInterface(riid, ppvInterface).isSuccess()) {
+    return StatusCode::SUCCESS;
   } else {
     // Interface is not directly available: try out a base class
-    ATH_CHECK(::AthService::queryInterface(riid, ppvInterface));
+    return ::AthService::queryInterface(riid, ppvInterface);
   }
   addRef();
   return StatusCode::SUCCESS;
diff --git a/Event/ByteStreamCnvSvc/src/ByteStreamEventStorageOutputSvc.h b/Event/ByteStreamCnvSvc/src/ByteStreamEventStorageOutputSvc.h
index cf2bc19a2052f1aca3beb191499454cd0f7c25e3..9f768e3c4811591dbea34c87abe84303a2d84ba7 100644
--- a/Event/ByteStreamCnvSvc/src/ByteStreamEventStorageOutputSvc.h
+++ b/Event/ByteStreamCnvSvc/src/ByteStreamEventStorageOutputSvc.h
@@ -48,11 +48,11 @@ class ByteStreamMetadata;
  *  This class implements the interface ByteStreamOutputSvc for the conversion
  *  service to write the output to a file.
  **/
-class ByteStreamEventStorageOutputSvc:
-    public ByteStreamOutputSvc,
-    virtual public IIoComponent {
+class ByteStreamEventStorageOutputSvc :
+    public extends< ByteStreamOutputSvc, IIoComponent > {
  public:
-  //using extends::extends;
+  using extends::extends;
+
   /// Constructors:
   ByteStreamEventStorageOutputSvc(
       const std::string& name, ISvcLocator* pSvcLocator);