diff --git a/src/knot/main.c b/src/knot/main.c
index 6fe3877c75cb752d77da465337c64f2c231d0748..e739a9e5e84fd607573882aa3f555596c1b055cc 100644
--- a/src/knot/main.c
+++ b/src/knot/main.c
@@ -268,7 +268,8 @@ int main(int argc, char **argv)
 		log_server_info("PID stored in '%s'\n", pidf);
 		if ((cwd = malloc(PATH_MAX)) != NULL)
 			cwd = getcwd(cwd, PATH_MAX);
-		chdir("/");
+		if (chdir("/") != 0)
+			log_server_warning("Server can't change working directory.\n");
 	} else {
 		log_server_info("Server started in foreground, PID = %ld\n", pid);
 		log_server_info("Server running without PID file.\n");
@@ -397,7 +398,8 @@ int main(int argc, char **argv)
 
 	/* Return to original working directory. */
 	if (cwd) {
-		chdir(cwd);
+		if (chdir(cwd) != 0)
+			log_server_warning("Server can't change working directory.\n");
 		free(cwd);
 	}