diff --git a/daemon/src/config/yamlparser.cpp b/daemon/src/config/yamlparser.cpp
index d4462b77a66f43787278387d47dfde3286ab0cfd..4f7eed53f8a96feb28d0a7f9eed431b7e12c2f1a 100644
--- a/daemon/src/config/yamlparser.cpp
+++ b/daemon/src/config/yamlparser.cpp
@@ -63,9 +63,10 @@ YamlParser::YamlParser (const char *file) : filename (file)
 
 YamlParser::~YamlParser()
 {
-	fclose (fd);
-
-    yaml_parser_delete (&parser);
+    if (fd) {
+	    fclose (fd);
+	    yaml_parser_delete (&parser);
+    }
 
     for (int i = 0; i < eventNumber; i++)
         yaml_event_delete (&events[i]);
diff --git a/daemon/src/managerimpl.cpp b/daemon/src/managerimpl.cpp
index f41b083cdf12e4bc8ea491c86c7aa5bfb326f3fc..28e3f95c767ce8c642f5ec788f64a77bfd610a7e 100644
--- a/daemon/src/managerimpl.cpp
+++ b/daemon/src/managerimpl.cpp
@@ -98,7 +98,7 @@ void ManagerImpl::init (std::string config_file)
 
     _debug ("Manager: configuration file path: %s", _path.c_str());
 
-    Conf::YamlParser *parser;
+    Conf::YamlParser *parser = NULL;
 
 	try {
 		parser = new Conf::YamlParser (_path.c_str());
@@ -107,6 +107,7 @@ void ManagerImpl::init (std::string config_file)
 		parser->constructNativeData();
 	} catch (Conf::YamlParserException &e) {
 		_error ("Manager: %s", e.what());
+		fflush(stderr);
 		delete parser;
 		parser = NULL;
 	}