diff --git a/src/core/commands.c b/src/core/commands.c
index 547f7b16..ed82f44e 100644
--- a/src/core/commands.c
+++ b/src/core/commands.c
@@ -968,7 +968,9 @@ static void cmd_cd(const char *data)
 	if (*data == '\0') return;
 
 	str = convert_home(data);
-	chdir(str);
+	if (chdir(str) != 0) {
+		g_warning("Failed to chdir(): %s", strerror(errno));
+	}
 	g_free(str);
 }
 
diff --git a/src/core/rawlog.c b/src/core/rawlog.c
index 20368aeb..e66f20dd 100644
--- a/src/core/rawlog.c
+++ b/src/core/rawlog.c
@@ -102,10 +102,15 @@ void rawlog_redirect(RAWLOG_REC *rawlog, const char *str)
 static void rawlog_dump(RAWLOG_REC *rawlog, int f)
 {
 	GSList *tmp;
+	ssize_t ret = 1;
 
-	for (tmp = rawlog->lines; tmp != NULL; tmp = tmp->next) {
-		write(f, tmp->data, strlen((char *) tmp->data));
-		write(f, "\n", 1);
+	for (tmp = rawlog->lines; ret && tmp != NULL; tmp = tmp->next) {
+		ret = write(f, tmp->data, strlen((char *) tmp->data));
+		ret &= write(f, "\n", 1);
+	}
+
+	if (ret <= 0) {
+		g_warning("rawlog write() failed: %s", strerror(errno));
 	}
 }
 
diff --git a/src/core/write-buffer.c b/src/core/write-buffer.c
index 6f6eef8a..ffc3ae63 100644
--- a/src/core/write-buffer.c
+++ b/src/core/write-buffer.c
@@ -107,7 +107,9 @@ static int write_buffer_flush_rec(void *handlep, BUFFER_REC *rec)
 	for (tmp = rec->blocks; tmp != NULL; tmp = tmp->next) {
 		size = tmp->data != rec->active_block ? BUFFER_BLOCK_SIZE :
 			rec->active_block_pos;
-		write(handle, tmp->data, size);
+		if (write(handle, tmp->data, size) != size) {
+			g_warning("Failed to write(): %s", strerror(errno));
+		}
 	}
 
         empty_blocks = g_slist_concat(empty_blocks, rec->blocks);