diff --git a/Scheduler/Console/ConfigFile.cc b/Scheduler/Console/ConfigFile.cc
index 45e0eeed53953b2705112af07106f602cc17d435..bbe3b3f92130250ba0f6ceff136cca081a346327 100644
--- a/Scheduler/Console/ConfigFile.cc
+++ b/Scheduler/Console/ConfigFile.cc
@@ -37,9 +37,15 @@
 
 prefix_ void senf::console::detail::ConfigFileSource::v_parse(RestrictedExecutor & executor)
 {
-     parser_.parseFile(filename_, boost::bind( boost::ref(executor),
-                                               boost::ref(std::cerr),
-                                               _1 ));
+    try {
+        parser_.parseFile(filename_, boost::bind( boost::ref(executor),
+                                                  boost::ref(std::cerr),
+                                                  _1 ));
+    }
+    catch (SystemException & ex) {
+        if (! (ignoreMissing_ && ex.anyOf(ENOENT)))
+            throw;
+    }
 }
 
 ///////////////////////////////////////////////////////////////////////////
diff --git a/Scheduler/Console/ConfigFile.cci b/Scheduler/Console/ConfigFile.cci
index 8e80db84da1ee9b4a447a3a37bc6089cd32ff214..a655592dc3511d4b93ec0fb0de28100d5f9910a3 100644
--- a/Scheduler/Console/ConfigFile.cci
+++ b/Scheduler/Console/ConfigFile.cci
@@ -39,8 +39,15 @@ senf::console::detail::ConfigFileSource::create(std::string const & filename)
     return ptr(new ConfigFileSource(filename));
 }
 
+prefix_ senf::console::detail::ConfigFileSource::ptr
+senf::console::detail::ConfigFileSource::ignoreMissing()
+{
+    ignoreMissing_ = true;
+    return ptr(this);
+}
+
 prefix_ senf::console::detail::ConfigFileSource::ConfigFileSource(std::string const & filename)
-    : filename_ (filename)
+    : filename_ (filename), ignoreMissing_ (true)
 {}
 
 ///////////////////////////////////////////////////////////////////////////
@@ -48,9 +55,12 @@ prefix_ senf::console::detail::ConfigFileSource::ConfigFileSource(std::string co
 
 prefix_ senf::console::ConfigFile::ConfigFile(std::string const & filename,
                                               DirectoryNode & root)
-    : detail::BundleMixin(root)
+    : detail::BundleMixin(root), self_ (add(detail::ConfigFileSource::create(filename)))
+{}
+
+prefix_ void senf::console::ConfigFile::ignoreMissing()
 {
-    add(detail::ConfigFileSource::create(filename));
+    self_.ignoreMissing();
 }
 
 ///////////////////////////////////////////////////////////////////////////
diff --git a/Scheduler/Console/ConfigFile.hh b/Scheduler/Console/ConfigFile.hh
index 15414fbed8ee9154641147ef41c6c5384ddde1af..c3bea5378947561b607d358ae3572dbd8d742e2f 100644
--- a/Scheduler/Console/ConfigFile.hh
+++ b/Scheduler/Console/ConfigFile.hh
@@ -73,6 +73,11 @@ namespace console {
 
         ///@}
         ///////////////////////////////////////////////////////////////////////////
+
+        void ignoreMissing();           ///< Call to ignore missing files
+
+    private:
+        detail::ConfigFileSource & self_;
     };
 
     /** \brief Read configuration file
diff --git a/Scheduler/Console/ConfigFile.ih b/Scheduler/Console/ConfigFile.ih
index 80191d01596f213cd5e24b58a1a10f78ece13e58..f37ca6e512e3104628132bbcd79146e97ce45e75 100644
--- a/Scheduler/Console/ConfigFile.ih
+++ b/Scheduler/Console/ConfigFile.ih
@@ -43,12 +43,15 @@ namespace detail {
 
         static ptr create(std::string const & filename);
 
+        ptr ignoreMissing();
+
     private:
         ConfigFileSource(std::string const & filename);
 
         virtual void v_parse(RestrictedExecutor & executor);
 
         std::string filename_;
+        bool ignoreMissing_;
         CommandParser parser_;
     };
 
diff --git a/Scheduler/Console/ConfigFile.test.cc b/Scheduler/Console/ConfigFile.test.cc
index b1976c2002e91d7c2364f72b045bec4540b6115f..0d0a34a6bfc17169fa75900fe3061f7b8ab1ca83 100644
--- a/Scheduler/Console/ConfigFile.test.cc
+++ b/Scheduler/Console/ConfigFile.test.cc
@@ -78,18 +78,24 @@ BOOST_AUTO_UNIT_TEST(configFile)
         senf::console::ConfigFile cfg (cfgf.name());
 
         var1 = 0;
-        SENF_CHECK_NO_THROW( cfg.parse() )
+        SENF_CHECK_NO_THROW( cfg.parse() );
         BOOST_CHECK_EQUAL( var1, 10 );
 
         var1 = 0;
-        SENF_CHECK_NO_THROW( cfg.parse() )
+        SENF_CHECK_NO_THROW( cfg.parse() );
         BOOST_CHECK_EQUAL( var1, 0 );
 
         var1 = 0;
         cfg.reset();
-        SENF_CHECK_NO_THROW( cfg.parse() )
+        SENF_CHECK_NO_THROW( cfg.parse() );
         BOOST_CHECK_EQUAL( var1, 10 );
     }
+
+    {
+        senf::console::ConfigFile cfg ("i don't exist");
+        cfg.ignoreMissing();
+        SENF_CHECK_NO_THROW( cfg.parse() );
+    }
 }
 
 BOOST_AUTO_UNIT_TEST(configFileRestrict)
diff --git a/Scheduler/Console/Mainpage.dox b/Scheduler/Console/Mainpage.dox
index ce4982003315787cc0917d9029b8522c7ed59fb2..1314b5d537e4fc195e1a51b2a5e22e9d4500ef26 100644
--- a/Scheduler/Console/Mainpage.dox
+++ b/Scheduler/Console/Mainpage.dox
@@ -201,6 +201,8 @@
     
     \code
     senf::console::ConfigFile cf ("some.conf");
+    // The following line is optional: Call to ignore mussing files
+    cf.ignoreMissing();
     cf.parse();
     \endcode
 
@@ -410,7 +412,7 @@
     std::vector<std::string> args;
     senf::console::ConfigBundle conf (senf::console::root()["config"]);
     conf.add( senf::console::FileConfig("/etc/myserver.conf") );
-    conf.add( senf::console::FileConfig(".myserver.conf") );
+    conf.add( senf::console::FileConfig(".myserver.conf")->ignoreMissing() );
     conf.add( senf::console::OptionsConfig(senf::Daemon::instance().argc(), 
                                            senf::Daemon::instance().argv()) )
         .nonOptions(args)