diff --git a/src/redis.c b/src/redis.c
index 23bf013e..c24828c0 100644
--- a/src/redis.c
+++ b/src/redis.c
@@ -2018,12 +2018,14 @@ int processCommand(redisClient *c) {
         int hashslot;
 
         if (server.cluster->state != REDIS_CLUSTER_OK) {
+            flagTransaction(c);
             addReplySds(c,sdsnew("-CLUSTERDOWN The cluster is down. Use CLUSTER INFO for more information\r\n"));
             return REDIS_OK;
         } else {
             int error_code;
             clusterNode *n = getNodeByQuery(c,c->cmd,c->argv,c->argc,&hashslot,&error_code);
             if (n == NULL) {
+                flagTransaction(c);
                 if (error_code == REDIS_CLUSTER_REDIR_CROSS_SLOT) {
                     addReplySds(c,sdsnew("-CROSSSLOT Keys in request don't hash to the same slot\r\n"));
                 } else if (error_code == REDIS_CLUSTER_REDIR_UNSTABLE) {