diff --git a/src/settings.cpp b/src/settings.cpp
index 775c00699ad88cc7a46bd85c92cee0d4ddf6463a..fa7da806d98dec4a746659d9fc6b8c212145b816 100644
--- a/src/settings.cpp
+++ b/src/settings.cpp
@@ -350,8 +350,11 @@ bool Settings::updateConfigFile(const char *filename)
 
 	std::ifstream is(filename);
 	std::ostringstream os(std::ios_base::binary);
-
-	if (!updateConfigObject(is, os, ""))
+	
+	bool was_modified = updateConfigObject(is, os, "");
+	is.close();
+	
+	if (!was_modified)
 		return true;
 
 	if (!fs::safeWriteToFile(filename, os.str())) {