diff --git a/DDAlign/include/DDAlign/DetectorAlignment.h b/DDAlign/include/DDAlign/DetectorAlignment.h
index 66ad04f5eca58446da93c1b5f6789bd6c0afe7ae..dad90f60aa95cfb2b4f55b38aad968ea9d71d769 100644
--- a/DDAlign/include/DDAlign/DetectorAlignment.h
+++ b/DDAlign/include/DDAlign/DetectorAlignment.h
@@ -27,9 +27,6 @@ namespace DD4hep {
   /// Namespace for the geometry part of the AIDA detector description toolkit
   namespace Alignments {
 
-    // Forward declarations
-    class DetElement;
-
     /// DetectorAlignment. DetElement Handle supporting alignment operations.
     /**
      *  \author   M.Frank
diff --git a/DDCond/src/ConditionsInterna.cpp b/DDCond/src/ConditionsInterna.cpp
index afbec6cbf0e4afbf01d6b0f080e8552a14df062f..0575f30e5ada844160e569a574a33bf40d56a71c 100644
--- a/DDCond/src/ConditionsInterna.cpp
+++ b/DDCond/src/ConditionsInterna.cpp
@@ -121,13 +121,6 @@ namespace {
     return false;
   }
 
-  void __print(const char* prefix, Condition c)   {
-    if ( s_debug > INFO )  {
-      printout(INFO,"ConditionsManager","+++ %s %s [%s] = %s",
-               prefix, c.name().c_str(), c->iov->str().c_str(), c->value.c_str());
-    }
-  }
-
   template <typename PMF>
   void __callListeners(const ConditionsManagerObject::Listeners& listeners, PMF pmf, Condition& cond)  {
     for(ConditionsManagerObject::Listeners::const_iterator i=listeners.begin(); i!=listeners.end(); ++i)  {
diff --git a/DDCore/include/DD4hep/Alignments.h b/DDCore/include/DD4hep/Alignments.h
index efe10d2c4926dcba2f865c4c8e9e017c59b40b21..db96f00e64bc86aea3e936bd35cd684fe30f924b 100644
--- a/DDCore/include/DD4hep/Alignments.h
+++ b/DDCore/include/DD4hep/Alignments.h
@@ -33,7 +33,6 @@ namespace DD4hep {
     namespace Interna  {
       /// Forward declarations
       class AlignmentContainer;
-      class AlignmentObject;
     }
     class AlignmentsManagerObject;
     class AlignmentsLoader;
diff --git a/DDCore/include/DD4hep/Dictionary.h b/DDCore/include/DD4hep/Dictionary.h
index b71153ac9acb6e15ed5591e1dbbd8b5f57293b5e..1317d38782f7630d96930a363267b270176d70e0 100644
--- a/DDCore/include/DD4hep/Dictionary.h
+++ b/DDCore/include/DD4hep/Dictionary.h
@@ -19,6 +19,13 @@
 #ifndef DD4HEP_GEOMETRY_DICTIONARY_H
 #define DD4HEP_GEOMETRY_DICTIONARY_H
 
+// Disable some diagnostics for ROOT dictionaries
+#ifdef __GNUC__
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wdeprecated"
+#pragma GCC diagnostic ignored "-Wunused"
+#endif
+
 #include "XML/Evaluator.h"
 #include "DD4hep/DetAlign.h"
 #include "DD4hep/DD4hepRootPersistency.h"
diff --git a/DDCore/include/DD4hep/Memory.h b/DDCore/include/DD4hep/Memory.h
index 6650983eba723bff395eb44fe1acbb1515eac739..076724308218744582a4b6d6c45767df598ae3d0 100644
--- a/DDCore/include/DD4hep/Memory.h
+++ b/DDCore/include/DD4hep/Memory.h
@@ -18,6 +18,11 @@
 // Framework include files
 #include "RVersion.h"
 
+#ifdef __GNUC__
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations" // Code that causes warning goes here
+#endif
+
 // C/C++ include files
 #include <memory>
 
@@ -75,4 +80,8 @@ namespace DD4hep  {
       };
   }
 
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#endif
+
 #endif  // DD4HEP_MEMORY_H
diff --git a/DDCore/include/DD4hep/Primitives.h b/DDCore/include/DD4hep/Primitives.h
index 86ab8d2aa9d1e49d9b7b395de4f874d46153db47..1dc02eb4c36baf876e2ec252d46e24d54a17ed17 100644
--- a/DDCore/include/DD4hep/Primitives.h
+++ b/DDCore/include/DD4hep/Primitives.h
@@ -58,24 +58,24 @@ namespace DD4hep {
     /// Generic copy constructor
     invalid_handle_exception(const std::exception& e) : std::runtime_error(e.what()) {}
     /// Default destructor of specialized exception
-    virtual ~invalid_handle_exception() throw();
+    virtual ~invalid_handle_exception();
   };
 
   /// ABI information about type names
   std::string typeName(const std::type_info& type);
-  void typeinfoCheck(const std::type_info& typ1, const std::type_info& typ2, const std::string& text = "") throw(std::exception);
+  void typeinfoCheck(const std::type_info& typ1, const std::type_info& typ2, const std::string& text = "");
   /// Throw exception when handles are check for validity
-  void invalidHandleError(const std::type_info& type) throw(std::exception);
+  void invalidHandleError(const std::type_info& type);
   /// Throw exception when handles are badly assigned
-  void invalidHandleAssignmentError(const std::type_info& from, const std::type_info& to) throw(std::exception);
+  void invalidHandleAssignmentError(const std::type_info& from, const std::type_info& to);
 
   /// Throw exception when handles are check for validity
-  template <typename T> void invalidHandleError()  throw(std::exception) {
+  template <typename T> void invalidHandleError()  {
     invalidHandleError(typeid(T));
   }
 
   /// Throw exception when handles are check for validity
-  void notImplemented(const std::string& msg)  throw(std::exception);
+  void notImplemented(const std::string& msg);
 
 
   /// A bit of support for printing primitives
@@ -186,11 +186,11 @@ namespace DD4hep {
     }
 
     /// Apply cast using typeinfo instead of dynamic_cast
-    void* apply_dynCast(const ComponentCast& to, const void* ptr) const   throw(std::exception);
+    void* apply_dynCast(const ComponentCast& to, const void* ptr) const;
     /// Apply cast using typeinfo instead of dynamic_cast
-    void* apply_upCast(const ComponentCast& to, const void* ptr) const    throw(std::exception);
+    void* apply_upCast(const ComponentCast& to, const void* ptr) const;
     /// Apply cast using typeinfo instead of dynamic_cast
-    void* apply_downCast(const ComponentCast& to, const void* ptr) const  throw(std::exception);
+    void* apply_downCast(const ComponentCast& to, const void* ptr) const;
   };
 
 
diff --git a/DDCore/include/DD4hep/Volumes.h b/DDCore/include/DD4hep/Volumes.h
index 0cb30e36ab05ef9fa81332ca1bfe27944c945545..33414d7bdfa155b4bcd55fbdc5f58ec028653183 100644
--- a/DDCore/include/DD4hep/Volumes.h
+++ b/DDCore/include/DD4hep/Volumes.h
@@ -82,11 +82,20 @@ namespace DD4hep {
       class VolIDs: public std::vector<VolID> {
       public:
         typedef std::vector<VolID> Base;
-        VolIDs() : std::vector<VolID>() {
-        }
-        ~VolIDs() {
+        /// Default constructor
+        VolIDs() : std::vector<VolID>() {}
+        /// Copy constructor
+        VolIDs(const VolIDs& c) : std::vector<VolID>(c) {}
+        /// Destructor
+        ~VolIDs() {}
+        /// Assignment operator        
+        VolIDs& operator=(const VolIDs& c) {
+          if ( &c != this ) this->std::vector<VolID>::operator=(c);
+          return *this;
         }
+        /// Find entry
         std::vector<VolID>::const_iterator find(const std::string& name) const;
+        /// Inert new entry
         std::pair<std::vector<VolID>::iterator, bool> insert(const std::string& name, int value);
       };
       /// Magic word to detect memory corruptions
diff --git a/DDCore/src/GlobalAlignment.cpp b/DDCore/src/GlobalAlignment.cpp
index 44595a456190634dec7b24db3b7af8f1cdf0fa41..048f73ac263bc3d830e23c06c555cf131622ad3c 100644
--- a/DDCore/src/GlobalAlignment.cpp
+++ b/DDCore/src/GlobalAlignment.cpp
@@ -28,36 +28,6 @@ using namespace DD4hep;
 using namespace DD4hep::Alignments;
 
 namespace  {
-  int _align(const GlobalAlignment& a, TGeoHMatrix* transform, bool check, double overlap) {
-    TGeoPhysicalNode* n = a.ptr();
-    if ( n )  {
-      TGeoMatrix* mm = n->GetNode()->GetMatrix();
-      transform->MultiplyLeft(mm); // orig * delta
-      n->Align(transform, 0, check, overlap);
-      /*
-        printout(INFO,"GlobalAlignment","OLD matrix....");
-        mm->Print();
-        printout(INFO,"GlobalAlignment","Apply new relative matrix  mother to daughter:");
-        transform->Print();
-        transform->MultiplyLeft(mm); // orig * delta
-        printout(INFO,"GlobalAlignment","With deltas....");
-        transform->Print();
-        n->Align(transform, 0, check, overlap);
-        printout(INFO,"GlobalAlignment","NEW matrix....");
-        n->GetNode()->GetMatrix()->Print();
-      */
-      /*
-       */
-      printout(INFO,"GlobalAlignment","NEW matrix....");
-      n->GetNode()->GetMatrix()->Print();
-      Position local, global = a.toGlobal(local);
-      cout << "Local:" << local << " Global: " << global
-           << " and back:" << a.globalToLocal(global) << endl;
-
-      return 1;
-    }
-    throw runtime_error("DD4hep: Cannot align non existing physical node. [Invalid Handle]");
-  }
   struct CheckHandle  {
     CheckHandle(const GlobalAlignment& a)  {
       if ( a.isValid() ) return;
diff --git a/DDCore/src/Primitives.cpp b/DDCore/src/Primitives.cpp
index 62e7614c4aaad7e67276cd4be7cc84e1132d9054..4f595606c5a2542075717b093a2f49b0b10410cf 100644
--- a/DDCore/src/Primitives.cpp
+++ b/DDCore/src/Primitives.cpp
@@ -153,18 +153,16 @@ std::string DD4hep::typeName(const std::type_info& typ) {
 }
 
 /// Default destructor of specialized exception
-DD4hep::invalid_handle_exception::~invalid_handle_exception() throw() {
+DD4hep::invalid_handle_exception::~invalid_handle_exception() {
 }
 
 void DD4hep::invalidHandleError(const std::type_info& type)
-  throw(std::exception)
 {
   throw invalid_handle_exception("Attempt to access invalid object of type "+typeName(type)+" [Invalid Handle]");
 }
 
 void DD4hep::invalidHandleAssignmentError(const std::type_info& from, 
                                           const std::type_info& to)
-  throw(std::exception)
 {
   std::string msg = "Wrong assingment from ";
   msg += typeName(from);
@@ -176,14 +174,12 @@ void DD4hep::invalidHandleAssignmentError(const std::type_info& from,
 
 /// Throw exception when handles are check for validity
 void DD4hep::notImplemented(const std::string& msg)
-  throw(std::exception)
 {
   std::string m = "The requested feature " + msg + " is not implemented!";
   throw std::runtime_error(m);
 }
 
 void DD4hep::typeinfoCheck(const std::type_info& typ1, const std::type_info& typ2, const std::string& text)
-  throw(std::exception)
 {
   if (typ1 != typ2) {
     throw unrelated_type_error(typ1, typ2, text);
@@ -289,7 +285,6 @@ static inline void* cast_wrap(const void* p,
 
 /// Apply cast using typeinfo instead of dynamic_cast
 void* DD4hep::ComponentCast::apply_dynCast(const ComponentCast& to, const void* ptr) const
-  throw(std::exception)
 {
   if (&to == this) {
     return (void*) ptr;
@@ -330,7 +325,6 @@ void* DD4hep::ComponentCast::apply_dynCast(const ComponentCast& to, const void*
 
 /// Apply cast using typeinfo instead of dynamic_cast
 void* DD4hep::ComponentCast::apply_upCast(const ComponentCast& to, const void* ptr) const
-  throw(std::exception)
 {
   if (&to == this) {
     return (void*) ptr;
@@ -340,7 +334,6 @@ void* DD4hep::ComponentCast::apply_upCast(const ComponentCast& to, const void* p
   
 /// Apply cast using typeinfo instead of dynamic_cast
 void* DD4hep::ComponentCast::apply_downCast(const ComponentCast& to, const void* ptr) const
-  throw(std::exception)
 {
   if (&to == this) {
     return (void*) ptr;
diff --git a/DDCore/src/parsers/Grammars.h b/DDCore/src/parsers/Grammars.h
deleted file mode 100644
index 1bccc8653d713ea44d32dcf1aaafd84e7c358a09..0000000000000000000000000000000000000000
--- a/DDCore/src/parsers/Grammars.h
+++ /dev/null
@@ -1,541 +0,0 @@
-// $Id: $
-//==========================================================================
-//  AIDA Detector description implementation for LCD
-//--------------------------------------------------------------------------
-// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
-// All rights reserved.
-//
-// For the licensing terms see $DD4hepINSTALL/LICENSE.
-// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
-//
-//==========================================================================
-
-#ifndef DD4HEPKERNEL_GRAMMARS_H
-#define DD4HEPKERNEL_GRAMMARS_H 1
-#ifdef __GNUC__
-#warning                                                                \
-  The headers Grammars.h and Parsers.icpp are deprecated                \
-  and will be removed from the next release of Gaudi. You should migrate your \
-  code the new pasers based on Boost.Spirit 2.
-#endif
-// ============================================================================
-// Include files
-// ============================================================================
-// STD & STL
-// ============================================================================
-#include <cctype>
-// ============================================================================
-// Boost.Spirit
-// ============================================================================
-#include <boost/version.hpp>
-#if BOOST_VERSION >= 103800
-// FIXME: Move to the new boost::spirit::classic namespace
-#if !defined(BOOST_SPIRIT_USE_OLD_NAMESPACE)
-#define BOOST_SPIRIT_USE_OLD_NAMESPACE
-#endif
-#include <boost/spirit/include/classic.hpp>
-#include <boost/spirit/include/phoenix1.hpp>
-#else
-#include <boost/spirit.hpp>
-#include <boost/spirit/phoenix.hpp>
-#endif
-#include <boost/bind.hpp>
-
-// ============================================================================
-/** @file
- *  Collection of grammars for property types
- *
- *  @see Dd4hep::Parsers::parse
- *  @see Property
- *
- *  @author Alexander MAZUROV Alexander.Mazurov@gmail.com
- *  @author Vanya BELYAEV  ibelyaev@physics.syr.edu
- *  @date 2006-05-12
- */
-// ============================================================================
-namespace DD4hep
-{
-  namespace Parsers
-  {
-    // ========================================================================
-    using namespace boost::spirit ;
-    // ========================================================================
-    using namespace phoenix ;
-    // ========================================================================
-    /** @struct ClosureGrammar
-     *  Grammar or grammar rule which derive from this struct will have
-     *  attribute of type <c>T</c> and name <c>val</c>
-     *
-     *  @author Alexander MAZUROV Alexander.Mazurov@gmail.com
-     *  @author Vanya BELYAEV  ibelyaev@physics.syr.edu
-     *  @date 2006-05-14
-     */
-    template <typename T>
-    struct ClosureGrammar : public boost::spirit::closure < ClosureGrammar<T>,T >
-    {
-      typedef  boost::spirit::closure<ClosureGrammar, T> closure;
-      typename closure::member1 val;
-    };
-    // ========================================================================
-    /** @struct AttributesClosureGrammar
-     *
-     *  Grammar or grammar rule which derive from this struct will have
-     *  two attributes: type <c>T1</c> and name <c>val</c>, type <c>T2</c>
-     *  and name <c>attrs</c>
-     *
-     *  @author Alexander MAZUROV Alexander.Mazurov@gmail.com
-     *  @author Vanya BELYAEV  ibelyaev@physics.syr.edu
-     *  @date 2006-05-14
-     */
-    template <typename T1,typename T2>
-    struct AttributesClosureGrammar
-      : public boost::spirit::closure<AttributesClosureGrammar<T1,T2>,T1,T2>
-    {
-      typedef boost::spirit::closure<AttributesClosureGrammar, T1,T2> closure;
-      typename closure::member1 val;
-      typename closure::member2 attrs;
-    };
-    // ========================================================================
-    /** @class BoolGrammar
-     *
-     *  The valid represenation of boolean values are:
-     *
-     *   - true  , True  , TRUE  or 1
-     *   - false , False , FALSE or 0
-     *
-     *  @author Alexander MAZUROV Alexander.Mazurov@gmail.com
-     *  @author Vanya BELYAEV  ibelyaev@physics.syr.edu
-     *  @date 2006-05-14
-     */
-    class BoolGrammar : public grammar
-    <
-      BoolGrammar,
-      ClosureGrammar<bool>::context_t
-      >
-    {
-    public:
-      typedef bool ResultT;
-    public:
-      template <typename ScannerT>
-      struct definition
-      {
-        definition( BoolGrammar const &self)
-        {
-          boolean_literal
-            = true_literal[self.val = true] | false_literal[self.val = false];
-          true_literal
-            = str_p("true" ) | str_p("True" ) | str_p("TRUE" ) | str_p("1");
-          false_literal
-            = str_p("false") | str_p("False") | str_p("FALSE") | str_p("0");
-        }
-        rule<ScannerT> const& start() const
-        { return boolean_literal;}
-        rule<ScannerT> boolean_literal,true_literal,false_literal;
-      };
-    };
-    // ========================================================================
-    /** @class CharGrammar
-     *
-     *  The valid represenation of char values are:
-     *
-     *   - 'a', 'b','\''
-     *
-     *  @author Alexander MAZUROV Alexander.Mazurov@gmail.com
-     *  @author Vanya BELYAEV  ibelyaev@physics.syr.edu
-     *  @date 2006-05-14
-     */
-    template<typename RT=char>
-    class CharGrammar : public grammar
-    <
-      CharGrammar<RT> , typename ClosureGrammar<RT>::context_t
-      >
-    {
-    public:
-      typedef RT ResultT;
-    public:
-      template <typename ScannerT>
-      struct definition
-      {
-        definition( CharGrammar<RT> const &self)
-        {
-          char_literal
-            = int_parser<RT>()[self.val=arg1]
-            | ('\''
-               >> ( str_p("\\'")[self.val='\'']
-                    | (anychar_p[self.val=arg1]-'\'') )>>'\'');
-        }
-        rule<ScannerT> const& start() const
-        { return char_literal; }
-        rule<ScannerT> char_literal;
-      };
-    };
-    // ========================================================================
-    /** @class IntGrammar
-     *
-     *  The valid representation of integers values are:
-     *
-     *   - 1, 100, 123
-     *
-     *  @todo implement suffixes u U l L
-     *  @author Alexander MAZUROV Alexander.Mazurov@gmail.com
-     *  @author Vanya BELYAEV  ibelyaev@physics.syr.edu
-     *  @date 2006-05-14
-     */
-    template<typename RT=int>
-    class IntGrammar : public grammar
-    <
-      IntGrammar<RT>,
-      typename ClosureGrammar<RT>::context_t
-      >
-    {
-    public:
-      typedef RT ResultT;
-    public:
-      template <typename ScannerT>
-      struct definition
-      {
-        definition( IntGrammar<RT> const &self)
-        {
-          int_literal = lexeme_d[int_parser<RT>()[self.val=arg1]
-                                 >> !(ch_p('u') | ch_p('U') | ch_p('l') | ch_p('L'))];
-        }
-        rule<ScannerT> const& start() const { return int_literal; }
-        rule<ScannerT> int_literal;
-      };
-    };
-    // ========================================================================
-    /** @class RealGrammar
-     *
-     *  The valid represenation of real values are:
-     *
-     *   - 1, 1.0 ,1.123, 1E+2, 0.5e-2
-     *
-     *  @todo implement suffixes f l F L
-     *  @author Alexander MAZUROV Alexander.Mazurov@gmail.com
-     *  @author Vanya BELYAEV  ibelyaev@physics.syr.edu
-     *  @date 2006-05-14
-     */
-    template<typename RT=double>
-    class RealGrammar : public grammar
-    <
-      RealGrammar<RT>,typename ClosureGrammar<RT>::context_t
-      >
-    {
-    public:
-      typedef RT ResultT;
-    public:
-      template <typename ScannerT>
-      struct definition
-      {
-        definition( RealGrammar const &self)
-        {
-          real_literal
-            = lexeme_d[real_parser<RT,
-                       real_parser_policies<RT> >()[self.val = arg1]
-                       >> !(ch_p('f') | ch_p('F') | ch_p('l') | ch_p('L'))];
-        }
-        rule<ScannerT> const& start() const
-        { return real_literal; }
-        rule<ScannerT> real_literal;
-      };
-    };
-    // ========================================================================
-    /** @class StringGrammar
-     *
-     *  The valid represenation of string values are:
-     *
-     *   - "abc" , "\"abc\""
-     *   - 'abs' , '\'abc\''
-     *
-     *  @todo implement not ASCII chars in strings
-     *
-     *  @author Alexander MAZUROV Alexander.Mazurov@gmail.com
-     *  @author Vanya BELYAEV  ibelyaev@physics.syr.edu
-     *  @date 2006-05-14
-     */
-
-    class StringGrammar : public grammar
-    <
-      StringGrammar, ClosureGrammar<std::string>::context_t
-      >
-    {
-    public:
-      typedef std::string ResultT;
-      /** remove CR/LF symbols form the parsed strings
-       *  @attention it is a bit dangerous operation
-       *  The operation allows to write "very long" input strings
-       *  for opts-files (it is actual e.g. for DataOnDemandSvc configuration)
-       *  by splitting the strings into few lines
-       *  All new-line symbols (as well as '\n', '\t', CR/LF etc
-       *  are substituted by ordinary blanks.
-       */
-      void matchString() const
-      {
-        for ( std::string::iterator cur=this->val().begin();
-              cur!=this->val().end();cur++)
-        { if(std::isspace(*cur) ) { *cur = ' '; } }
-      }
-    public:
-      template <typename ScannerT>
-      struct definition
-      {
-        definition( StringGrammar const &self )
-        {
-          string_literal = (lexeme_d
-                            [
-                             ('"' >> (*( str_p("\\\"")
-                                         |
-                                         (anychar_p-'"') ))
-                              [self.val = construct_<std::string>
-                               (arg1,arg2)] >>
-                              '"')
-                             |
-                             ('\'' >> (*( str_p("\\'")
-                                          |
-                                          (anychar_p-'\'') ))
-                              [self.val = construct_<std::string>
-                               (arg1,arg2)]>>
-                              '\'')])[boost::bind(&StringGrammar::matchString,&self)];
-        }
-        rule<ScannerT> const& start() const { return string_literal; }
-        rule<ScannerT> string_literal;
-      };
-    };
-    // ========================================================================
-    /** @class SkipperGrammar
-     *
-     *  Skipping spaces and comments. Comments can be
-     *
-     *   - // ... - one line
-     *   - \/\* ... \*\/ - multiline
-     *
-     *
-     *  @author Alexander MAZUROV Alexander.Mazurov@gmail.com
-     *  @author Vanya BELYAEV  ibelyaev@physics.syr.edu
-     *  @date 2006-05-14
-     */
-    class SkipperGrammar : public grammar<SkipperGrammar>
-    {
-    public:
-      /** Constructor
-       *  @param skipnewline Skip new line symbols or not
-       */
-      SkipperGrammar ( const bool skipnewline = true )
-        : m_skipnewline(skipnewline){}
-    public:
-      /// @return true - skip new line symbols, false - not skip
-      bool skipnewline() const{return m_skipnewline;}
-    public:
-      template <typename ScannerT>
-      struct definition
-      {
-        definition( SkipperGrammar const& self)
-        {
-          if ( self.skipnewline() )
-          {
-            skip
-              =   space_p
-              |   comment_p("//")     // C++ comment
-              |   comment_p("/*", "*/")     // C comment
-              ;
-          }
-          else
-          {
-            skip
-              =   (space_p-eol_p)
-              |   comment_p("//")     // C++ comment
-              |   comment_p("/*", "*/")     // C comment
-              ;
-          }
-        }
-        rule<ScannerT>  skip;
-        rule<ScannerT> const& start() const { return skip; }
-      };
-    private:
-      bool m_skipnewline;
-    };
-    // ========================================================================
-    /** @class PairGrammar
-     *
-     *  The valid represenation of pairs are:
-     *  ("abc",123) or ("abc","def")
-     *  Inner types of pair depends on KeyGrammarT and ValueGrammarT grammars
-     *
-     *  @author Alexander MAZUROV Alexander.Mazurov@gmail.com
-     *  @author Vanya BELYAEV  ibelyaev@physics.syr.edu
-     *  @date 2006-05-14
-     */
-    template <typename KeyGrammarT, typename ValueGrammarT>
-    class PairGrammar : public grammar
-    <
-      PairGrammar<KeyGrammarT,ValueGrammarT>,
-      typename ClosureGrammar<
-        std::pair<typename KeyGrammarT::ResultT,
-                  typename ValueGrammarT::ResultT> >::context_t
-      >
-    {
-    public:
-      typedef typename KeyGrammarT::ResultT KeyT;
-      typedef typename ValueGrammarT::ResultT ValueT;
-      typedef std::pair<KeyT,ValueT> ResultT;
-    public:
-      /** Constructor
-       *  @param delim Delimiter for pair values
-       */
-      PairGrammar ( const std::string&  delim = "," )
-        : m_delim(delim) {}
-    public:
-      /// callback. Action when we match first value
-      void matchFirst  ( const KeyT&   first  ) const { this->val().first = first; }
-      /// callback. Action when we match second value
-      void matchSecond ( const ValueT& second ) const { this->val().second = second; }
-    public:
-      template <typename ScannerT>
-      struct definition
-      {
-        definition( PairGrammar const &self)
-        {
-          para
-            = (
-               str_p("(")
-               >> (grkey[boost::bind(&PairGrammar::matchFirst,&self,_1)])
-               >> self.delim().c_str()
-               >> (grvalue[boost::bind(&PairGrammar::matchSecond,&self,_1)])
-               >> str_p(")")
-               ) ;
-        }
-        rule<ScannerT> const& start() const { return para; }
-        rule<ScannerT> para;
-        KeyGrammarT grkey;
-        ValueGrammarT grvalue;
-      };
-    public:
-      /// @return Delimiter for pair values
-      const std::string& delim() const { return m_delim ; }
-      /** Set delimiters for pair values
-       *  @param delim Delimiter
-       */
-      void setDelim ( const std::string& delim ) { m_delim = delim;}
-    private:
-      std::string m_delim;
-    };
-    // ========================================================================
-    /** @class VectorGrammar
-     *
-     *  The valid represenation of vector are:
-     *   - {"abc","defj","i"} or {1,2,3,4,5}
-     *   - ["abc","defj","i"] or [1,2,3,4,5]
-     *  Inner type depends on GrammarT grammar
-     *
-     *  @author Alexander MAZUROV Alexander.Mazurov@gmail.com
-     *  @author Vanya BELYAEV  ibelyaev@physics.syr.edu
-     *  @date 2006-05-14
-     */
-    template <typename GrammarT>
-    class VectorGrammar : public grammar
-    <
-      VectorGrammar<GrammarT> ,
-      typename ClosureGrammar<std::vector<typename GrammarT::ResultT> >::context_t
-      >
-    {
-    public:
-      typedef typename GrammarT::ResultT ValueT;
-      typedef std::vector<ValueT> ResultT;
-      typedef VectorGrammar<GrammarT> SelfT;
-    public:
-      /// callback. Action when we match inner value
-      void matchItem(const ValueT& value) const { this->val().push_back(value); }
-    public:
-      template <typename ScannerT>
-      struct definition
-      {
-        definition(SelfT const &self)
-        {
-          inner =
-            !(gr[boost::bind(&VectorGrammar::matchItem,&self,_1)]
-              >> *(','>>gr[boost::bind(&VectorGrammar::matchItem,&self,_1)]));
-          vec =
-            '[' >> inner >> ']' |  // a'la python list
-            '(' >> inner >> ')' |  // a'la python tuple
-            '{' >> inner >> '}' ;  // like obsolete list from opts-grammar
-        }
-        rule<ScannerT> const& start() const { return vec; }
-        rule<ScannerT> vec,inner;
-        GrammarT gr;
-      };
-    };
-    // ========================================================================
-    /** @class MapGrammar
-     *
-     *  The valid represenation of map are:
-     *   - {"file1":"path1","something":"nothing"}
-     *   - {"file1"="path1","something"="nothing"}
-     *   - ["file1":10,"something":20]
-     *   - ["file1"=30,"something"=40]
-     *  Inner key type depends on KeyGrammarT grammar
-     *  Inner value type depends on ValueGrammarT grammar
-     *
-     *  @author Alexander MAZUROV Alexander.Mazurov@gmail.com
-     *  @author Vanya BELYAEV  ibelyaev@physics.syr.edu
-     *  @date 2006-05-14
-     */
-    template <typename KeyGrammarT, typename ValueGrammarT>
-    class MapGrammar : public grammar
-    <
-      MapGrammar<KeyGrammarT,ValueGrammarT>,
-      typename AttributesClosureGrammar
-      < std::map<typename KeyGrammarT::ResultT,
-                 typename ValueGrammarT::ResultT>,
-        std::pair<typename KeyGrammarT::ResultT,
-                  typename ValueGrammarT::ResultT> >::context_t
-      >
-    {
-    public:
-      typedef typename KeyGrammarT::ResultT KeyT;
-      typedef typename ValueGrammarT::ResultT ValueT;
-      typedef std::map<KeyT,ValueT> ResultT;
-    public:
-      /// call backs. Action when we match pair in map
-      void matchItem  () const
-      {
-        //this->val().insert(this->attrs());
-        this->val()[this->attrs().first] = this->attrs().second ;
-      }
-      /// call backs. Action when we match key of pair
-      void matchFirst ( const KeyT&   value ) const {  this->attrs().first = value ; }
-      /// call backs. Action when we match value pf pair
-      void matchSecond( const ValueT& value ) const { this->attrs().second = value ; }
-    public:
-      template <typename ScannerT>
-      struct definition
-      {
-        definition( MapGrammar const &self)
-        {
-          vec
-            = ('{'>> inner_list >> '}') | ('['>>inner_list>>']');
-          inner_list
-            =
-            !( inner[boost::bind(&MapGrammar::matchItem,&self)]
-               >> *( ch_p(',') >>
-                     inner[boost::bind(&MapGrammar::matchItem,&self)] )
-               );
-          inner
-            =
-            grKey[boost ::bind(&MapGrammar::matchFirst,&self,_1)]
-            >> ( ch_p('=') | ch_p(':'))
-            >> grValue[boost::bind(&MapGrammar::matchSecond,&self,_1)] ;
-        }
-        KeyGrammarT grKey;
-        ValueGrammarT grValue;
-        rule<ScannerT> const& start() const { return vec; }
-        rule<ScannerT> vec,inner, inner_list ;
-      };
-    };
-    // ========================================================================
-  } // end of namespace Dd4hep::Parsers
-} // end of namespace Dd4hep
-// ============================================================================
-// The END
-// ============================================================================
-#endif // DD4HEPKERNEL_GRAMMARS_H
-// ============================================================================
diff --git a/DDCore/src/parsers/Parsers.icpp b/DDCore/src/parsers/Parsers.icpp
deleted file mode 100644
index 55eaf8bf3122ea4f2fe7bad32ec480aaec6b8f70..0000000000000000000000000000000000000000
--- a/DDCore/src/parsers/Parsers.icpp
+++ /dev/null
@@ -1,241 +0,0 @@
-// $Id: $
-//==========================================================================
-//  AIDA Detector description implementation for LCD
-//--------------------------------------------------------------------------
-// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
-// All rights reserved.
-//
-// For the licensing terms see $DD4hepINSTALL/LICENSE.
-// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
-//
-//==========================================================================
-#ifndef DD4HEP_PARSERS_ICPP
-#define DD4HEP_PARSERS_ICPP 1
-// ============================================================================
-// Include files
-// ============================================================================
-// STD&STL
-// ============================================================================
-#include <vector>
-#include <map>
-#include <string>
-// ============================================================================
-// Boost.Bind
-// ============================================================================
-#include "boost/bind.hpp"
-// ============================================================================
-// Boost.Spirit, Boost.Spirit.Phoenix
-// ============================================================================
-#include <boost/version.hpp>
-#if BOOST_VERSION >= 103800
-// FIXME: Move to the new boost::spirit::classic namespace
-#if !defined(BOOST_SPIRIT_USE_OLD_NAMESPACE)
-#define BOOST_SPIRIT_USE_OLD_NAMESPACE
-#endif
-#include <boost/spirit/include/classic.hpp>
-#include <boost/spirit/include/phoenix1.hpp>
-#else
-#include <boost/spirit.hpp>
-#include <boost/spirit/phoenix.hpp>
-#endif
-// ============================================================================
-// DD4hepKernel
-// ============================================================================
-#include "DD4hep/Parsers.h"
-#include "Grammars.h"
-// ============================================================================
-/** @file
- *
- *  Helper inline functions for implementation of real parsing function
- *  from the namespace DD4hep::Parsers
- *
- *  For adding new type you should have only grammar class which recognize
- *  this type. Then by combining this grammar with such already implemented
- *  grammars  like VectorGrammar, MapGrammar, PairGrammar you can very simply
- *  implement container types which will work with your type.
- *
- *  If you want your type can be handled in property file - see ValueGrammar
- *  in JobOptionsSvc which lays in DD4hepCoreSvc.
- *
- *  @author Alexander MAZUROV  Alexander.Mazurov@gmail.com
- *  @author Vanya BELYAEV ibelyaev@physics.syr.edu
- *  @date   2006-05-12
- */
-// ============================================================================
-namespace DD4hep   {
-  namespace Parsers  {
-    using namespace std;
-    using namespace boost::spirit ;
-
-    /// the actual type of position iterator
-    typedef boost::spirit::position_iterator<string::const_iterator> IteratorT;
-
-    /// create the position iterator from the input
-    inline IteratorT createIterator( const std::string& input)
-    { return IteratorT ( input.begin(), input.end() ) ; }
-
-    // ========================================================================
-    /** helper function to "merge" the implementation of all parsers
-     *  for integer-like quantities into one templated grammar
-     *  @see DD4hep::Parsers::IntGrammar
-     *
-     *  @param result (output) parsing result
-     *  @param input  (input) string to be parsed
-     *  @return status code
-     *
-     *  @author Alexander MAZUROV  Alexander.Mazurov@gmail.com
-     *  @author Vanya BELYAEV ibelyaev@physics.syr.edu
-     *  @date   2006-05-12
-     */
-    // ========================================================================
-    template<typename IntegerT>
-    inline StatusCode parse_integer
-    (IntegerT& result,const string& input)
-    {
-      IntGrammar<IntegerT> g;
-      return parse
-        ( createIterator(input),
-          IteratorT(),
-          g[var(result)=arg1]).full;
-    }
-    // ========================================================================
-    /** helper function to "merge" the implementation of all parsers
-     *  for vector of integer-like quantities
-     *  into the combination of templated grammars
-     *  @see DD4hep::Parsers::VectorGrammar
-     *  @see DD4hep::Parsers::IntGrammar
-     *  @see DD4hep::Parsers::SkipperGrammar
-     *
-     *  @param result (output) parsing result
-     *  @param input  (input) string to be parsed
-     *  @return status code
-     *
-     *  @author Alexander MAZUROV  Alexander.Mazurov@gmail.com
-     *  @author Vanya BELYAEV ibelyaev@physics.syr.edu
-     *  @date   2006-05-12
-     */
-    // ========================================================================
-    template<typename IntegerT>
-    inline  StatusCode parse_integer_vector
-    ( std::vector<IntegerT>& result,const string& input)
-    {
-      VectorGrammar<IntGrammar<IntegerT> > g;
-      return parse
-        ( createIterator(input),
-          IteratorT(),
-          g[var(result)=arg1],
-          SkipperGrammar()).full;
-    }
-    // ========================================================================
-    /** helper function to "merge" the implementation of all parsers
-     *  for "char-like" quantities into one templated grammar
-     *  @see DD4hep::Parsers::CharGrammar
-     *
-     *  @param result (output) parsing result
-     *  @param input  (input) string to be parsed
-     *  @return status code
-     *
-     *  @author Alexander MAZUROV  Alexander.Mazurov@gmail.com
-     *  @author Vanya BELYAEV ibelyaev@physics.syr.edu
-     *  @date   2006-05-12
-     */
-    // ========================================================================
-    template<typename CharT>
-    inline StatusCode  parse_char
-    ( CharT& result , const string& input )
-    {
-      CharGrammar<CharT> g;
-      return parse
-        ( createIterator(input),
-          IteratorT(),
-          g[var(result)=arg1]).full;
-    }
-    // ========================================================================
-    /** helper function to "merge" the implementation of all parsers
-     *  for vector of 'char-like' quantities
-     *  into the combination of templated grammars
-     *  @see DD4hep::Parsers::VectorGrammar
-     *  @see DD4hep::Parsers::CharGrammar
-     *  @see DD4hep::Parsers::SkipperGrammar
-     *
-     *  @param result (output) parsing result
-     *  @param input  (input) string to be parsed
-     *  @return status code
-     *
-     *  @author Alexander MAZUROV  Alexander.Mazurov@gmail.com
-     *  @author Vanya BELYAEV ibelyaev@physics.syr.edu
-     *  @date   2006-05-12
-     */
-    // ========================================================================
-    template<typename CharT>
-    inline StatusCode parse_char_vector
-    (std::vector<CharT>& result,const string& input)
-    {
-      VectorGrammar<CharGrammar<CharT> > g;
-      return parse
-        ( createIterator(input),
-          IteratorT(),
-          g[var(result)=arg1],
-          SkipperGrammar()).full;
-    }
-    // ========================================================================
-    /** helper function to "merge" the implementation of all parsers
-     *  for "float-like" quantities into one templated grammar
-     *  @see DD4hep::Parsers::RealGrammar
-     *
-     *  @param result (output) parsing result
-     *  @param input  (input) string to be parsed
-     *  @return status code
-     *
-     *  @author Alexander MAZUROV  Alexander.Mazurov@gmail.com
-     *  @author Vanya BELYAEV ibelyaev@physics.syr.edu
-     *  @date   2006-05-12
-     */
-    template<typename RealT>
-    inline StatusCode parse_real
-    ( RealT& result , const string& input)
-    {
-      RealGrammar<RealT> g;
-      return parse
-        ( createIterator(input),
-          IteratorT(),
-          g[var(result)=arg1],
-          SkipperGrammar()).full;
-    }
-    // ========================================================================
-    /** helper function to "merge" the implementation of all parsers
-     *  for vector of 'char-like' quantities
-     *  into the combination of templated grammars
-     *  @see DD4hep::Parsers::VectorGrammar
-     *  @see DD4hep::Parsers::RealGrammar
-     *  @see DD4hep::Parsers::SkipperGrammar
-     *
-     *  @param result (output) parsing result
-     *  @param input  (input) string to be parsed
-     *  @return status code
-     *
-     *  @author Alexander MAZUROV  Alexander.Mazurov@gmail.com
-     *  @author Vanya BELYAEV ibelyaev@physics.syr.edu
-     *  @date   2006-05-12
-     */
-    // ========================================================================
-    template<typename RealT>
-    StatusCode parse_real_vector
-    ( std::vector<RealT>& result,const string& input)
-    {
-      VectorGrammar< RealGrammar<RealT> > g;
-      return parse
-        ( createIterator(input),
-          IteratorT(),
-          g[var(result)=arg1],
-          SkipperGrammar()).full;
-    }
-  } // end of namespace Parsers
-} // end of namespace DD4hep
-// ============================================================================
-#endif
-// ============================================================================
-// The END
-// ============================================================================
-
-
diff --git a/DDG4/include/DDG4/DDG4Dict.h b/DDG4/include/DDG4/DDG4Dict.h
index 0acbe9301ae39a4a5fc5c7a6aa3e23f64078f04a..7e4619e9bb827e87db64a6b26cf5578525bd69e1 100644
--- a/DDG4/include/DDG4/DDG4Dict.h
+++ b/DDG4/include/DDG4/DDG4Dict.h
@@ -19,6 +19,13 @@
 #ifndef DD4HEP_DDG4_DDG4DICT_H
 #define DD4HEP_DDG4_DDG4DICT_H
 
+// Disable some diagnostics for ROOT dictionaries
+#ifdef __GNUC__
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wdeprecated"
+#pragma GCC diagnostic ignored "-Wunused"
+#endif
+
 // FRamework include files
 #include "DDG4/Geant4Data.h"
 #include "DDG4/Geant4Particle.h"
diff --git a/DDG4/python/DDG4Dict.C b/DDG4/python/DDG4Dict.C
index e72c310ff1e8bf8d67475fcf83179af9fa99b212..bcba966b2e3062f06e07a9a88de2477f918eb59a 100644
--- a/DDG4/python/DDG4Dict.C
+++ b/DDG4/python/DDG4Dict.C
@@ -16,7 +16,15 @@
 //  Author     : M.Frank
 //
 //====================================================================
-// FRamework include files
+
+// Disable some diagnostics for ROOT dictionaries
+#ifdef __GNUC__
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wdeprecated"
+#pragma GCC diagnostic ignored "-Wunused"
+#endif
+
+// Framework include files
 #include "DDG4/Geant4Config.h"
 #include "DDG4/Geant4Primary.h"
 #include "DDG4/Geant4Random.h"
diff --git a/UtilityApps/src/converter.cpp b/UtilityApps/src/converter.cpp
index 9b28e4790a3bbfb88573785582f157dc27294e6e..52b85870044be554bb1cb747e4df5cc6202b5ee9 100644
--- a/UtilityApps/src/converter.cpp
+++ b/UtilityApps/src/converter.cpp
@@ -11,6 +11,9 @@
 // Author     : M.Frank
 //
 //==========================================================================
+#ifdef __GNUC__
+#pragma GCC diagnostic ignored "-Wunused-function"
+#endif
 
 // Framework include files
 #include "run_plugin.h"
@@ -103,3 +106,4 @@ int main(int argc,char** argv)  {
   if ( destroy ) delete &lcdd;
   return 0;
 }
+
diff --git a/UtilityApps/src/plugin_runner.cpp b/UtilityApps/src/plugin_runner.cpp
index 698f8f99ac924ebf88b876627a2eda0e354fd4c5..447f92a7d2be605a422a8f5a5bbcff786e1e1f95 100644
--- a/UtilityApps/src/plugin_runner.cpp
+++ b/UtilityApps/src/plugin_runner.cpp
@@ -11,6 +11,9 @@
 // Author     : M.Frank
 //
 //==========================================================================
+#ifdef __GNUC__
+#pragma GCC diagnostic ignored "-Wunused-function"
+#endif
 
 // Framework include files
 #include "run_plugin.h"
@@ -19,8 +22,11 @@
 namespace {
   void usage() {
     cout << "geoPluginRun -opt [-opt]                                                \n"
-      "        -plugin <name>  [REQUIRED]  Plugin to be executed and applied.        \n"
-      "        -input  <file>  [OPTIONAL]  Specify geometry input file.              \n";
+      "        -input  <file>  [OPTIONAL]  Specify geometry input file.              \n"
+      "        -plugin <name>  <args> [args]                                         \n"
+      "                        [REQUIRED]  Plugin to be executed and applied.        \n"
+      "        -plugin <name>  <args> [args]                                         \n"
+      "                        [OPTIONAL]  Next plugin with arguments.               \n";
     print_default_args() << endl;
     exit(EINVAL);
   }
diff --git a/cmake/DD4hepBuild.cmake b/cmake/DD4hepBuild.cmake
index 504dd7eac403e3a38ac6ca698ac13f97d15ce8c0..3876dbb130529c0505cb8e0ca81fa2b6450e54d2 100644
--- a/cmake/DD4hepBuild.cmake
+++ b/cmake/DD4hepBuild.cmake
@@ -25,17 +25,18 @@ endmacro(dd4hep_to_parent_scope)
 
 macro(dd4hep_set_compiler_flags)
   if ( DD4HEP_USE_CXX14 )
-    set ( CMAKE_CXX_FLAGS "-std=c++14 -ftls-model=global-dynamic -Wall -Wextra -pedantic -Wshadow -Wformat-security -Wno-long-long -Wdeprecated")
+    set ( CMAKE_CXX_FLAGS "-std=c++14 -ftls-model=global-dynamic")
     set ( DD4HEP_USE_CXX11 OFF ) 
     set ( DD4HEP_USE_STDCXX 14 )
     add_definitions(-DDD4HEP_USE_STDCXX=14)
   elseif ( DD4HEP_USE_CXX11 )
-    set ( CMAKE_CXX_FLAGS "-std=c++11 -ftls-model=global-dynamic -Wall -Wextra -pedantic -Wshadow -Wformat-security -Wno-long-long -Wdeprecated")
+    set ( CMAKE_CXX_FLAGS "-std=c++11 -ftls-model=global-dynamic")
     set ( DD4HEP_USE_STDCXX 11 )
     add_definitions(-DDD4HEP_USE_STDCXX=11)
   else()
-    set( CMAKE_CXX_FLAGS "-Wall -Wextra -pedantic -Wshadow -Wformat-security -Wno-long-long -Wdeprecated")
+    set( CMAKE_CXX_FLAGS )
   endif()
+  set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -pedantic -Wshadow -Wformat-security -Wno-long-long -Wdeprecated")
 
   if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
     if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.9)