diff --git a/src/mkv/write.c b/src/mkv/write.c
index d366c6bf3dc86999c5bba1357d72b5e771efb711..7faa39996cb8a41d77b0de36ca0004f032e48fbf 100644
--- a/src/mkv/write.c
+++ b/src/mkv/write.c
@@ -108,8 +108,7 @@ kara_metadata_write(struct kara_metadata *mdt, const char *filename, const char
     char *const metadafilepath = &tmpfilepath[4];
     const char *const args1[] = { mkvpropedit, "-t", "all:", filename, NULL };
     const char *const args2[] = { mkvpropedit, "-t", tmpfilepath, filename, NULL };
-    int fd;
-    bool sta = false;
+    int fd, sta = -1;
 
     memset(tmpfilepath, 0, PATH_MAX);
     strncat(tmpfilepath, "all:/tmp/lektor.metadata.XXXXXX", PATH_MAX - 1);
@@ -128,7 +127,7 @@ kara_metadata_write(struct kara_metadata *mdt, const char *filename, const char
     if (!mkvpropedit__(args1) || !mkvpropedit__(args2))
         goto error;
 
-    sta = true;
+    sta = 0;
 error:
     close(fd);
     unlink(metadafilepath);
@@ -207,7 +206,7 @@ metadata_set_directory(const char *kara_dir, const char *mkvpropedit)
 
         if (dir->d_type == DT_REG               &&
             metadata_from_path(path, &meta)     &&
-            kara_metadata_write(&meta, path, mkvpropedit))
+            ! kara_metadata_write(&meta, path, mkvpropedit))
             continue;
         else if (dir->d_type == DT_DIR          &&
                  !STR_MATCH(dir->d_name, ".")   &&
@@ -226,6 +225,6 @@ metadata_set_file(char *karapath, const char *mkvpropedit)
     struct kara_metadata meta;
 
     return metadata_from_path(karapath, &meta) &&
-           kara_metadata_write(&meta, karapath, mkvpropedit);
+           ! kara_metadata_write(&meta, karapath, mkvpropedit);
 }
 
diff --git a/src/net/downloader.c b/src/net/downloader.c
index 7ccf0e5b31c4d10213db209d15fed1b5548c8217..753e20925d272b087f6709c6d64186bc8070ad03 100644
--- a/src/net/downloader.c
+++ b/src/net/downloader.c
@@ -381,7 +381,7 @@ __handle_got_json(volatile sqlite3 *db, struct lkt_repo *repo, struct json_objec
             continue;
         }
 
-        if (!kara_metadata_write(&kara.mdt, kara.filename, mkvpropedit)) {
+        if (kara_metadata_write(&kara.mdt, kara.filename, mkvpropedit)) {
             LOG_WARN_SCT("REPO", "Could not write metadata to kara '%ld' with path '%s'", kara.id, kara.filename);
             continue;
         }