diff --git a/src/plugins/doveadm-sieve/doveadm-sieve-sync.c b/src/plugins/doveadm-sieve/doveadm-sieve-sync.c
index 64c4d326e252d2ecca0308320df6b2cee1aa839b..4d8cdd5ab32f85eb38dbb51281c27dc0a0d1d329 100644
--- a/src/plugins/doveadm-sieve/doveadm-sieve-sync.c
+++ b/src/plugins/doveadm-sieve/doveadm-sieve-sync.c
@@ -184,14 +184,15 @@ sieve_attribute_set_active(struct mail_storage *storage,
 	scriptname++;
 
 	/* Activate specified script */
-	ret = (sieve_storage_open_script(svstorage, scriptname,
-					 &script, NULL) < 0 ?
-	       -1 : sieve_script_activate(script, last_change));
-	if (ret < 0) {
+	ret = 0;
+	if (sieve_storage_open_script(svstorage, scriptname,
+				      &script, NULL) < 0 ||
+	    sieve_script_activate(script, last_change) < 0) {
 		mail_storage_set_critical(
 			storage, "Failed to activate Sieve script '%s': %s",
 			scriptname,
 			sieve_storage_get_last_error(svstorage, NULL));
+		ret = -1;
 	}
 	sieve_script_unref(&script);
 	sieve_storage_set_modified(svstorage, last_change);