diff --git a/BaseLib/ConfigTree.h b/BaseLib/ConfigTree.h
index c1037ebf3e50a62a5f287184d37af97dd1d74005..90a60270b4090931e009318dfb256d398062f81a 100644
--- a/BaseLib/ConfigTree.h
+++ b/BaseLib/ConfigTree.h
@@ -256,8 +256,8 @@ public:
      */
     explicit ConfigTree(PTree const& tree,
                            std::string const& filename,
-                           Callback const& error_cb = onerror,
-                           Callback const& warning_cb = onerror);
+                           Callback const& error_cb,
+                           Callback const& warning_cb);
 
     //! copying is not compatible with the semantics of this class
     ConfigTree(ConfigTree const&) = delete;
diff --git a/BaseLib/ConfigTreeUtil.cpp b/BaseLib/ConfigTreeUtil.cpp
index ad5d7e769cce5a120cbf96ca68e83557eef17c4a..f85898d12f88c54c469d0f1207f4c81d97d70a23 100644
--- a/BaseLib/ConfigTreeUtil.cpp
+++ b/BaseLib/ConfigTreeUtil.cpp
@@ -21,6 +21,7 @@ ConfigTreeTopLevel::ConfigTreeTopLevel(
         ConfigTree::PTree&& ptree)
     : _ptree(std::move(ptree))
     , _ctree(_ptree, filepath,
+             ConfigTree::onerror,
              be_ruthless ? ConfigTree::onerror : ConfigTree::onwarning)
 {
 }