diff --git a/src/ConfigurationFile.cpp b/src/ConfigurationFile.cpp
index 6ee68726242deec9a8415f7d8ddd91ac1ff9c182..dd516595975bbb0157522cf309412e867c5fc8a5 100644
--- a/src/ConfigurationFile.cpp
+++ b/src/ConfigurationFile.cpp
@@ -21,6 +21,7 @@
 #include <unistd.h>
 #include <string>
 #include <algorithm>
+#include <sstream>
 
 using namespace PacketLib;
 
@@ -54,7 +55,13 @@ bool ConfigurationFile::open(char** parameters) throw(PacketExceptionIO*)
 void ConfigurationFile::close() throw(PacketExceptionIO*)
 {
     InputTextFile::close();
-    chdir(currentpwd);
+	int retval = chdir(currentpwd);
+	if(retval == -1)
+	{
+		std::stringstream ss;
+		ss << "Invalid chdir on '" << currentpwd << "'" << std::endl;
+		throw PacketExceptionIO(ss.str().c_str());
+	}
 }