diff --git a/redisson/src/main/java/org/redisson/connection/MasterSlaveEntry.java b/redisson/src/main/java/org/redisson/connection/MasterSlaveEntry.java
index <HASH>..<HASH> 100644
--- a/redisson/src/main/java/org/redisson/connection/MasterSlaveEntry.java
+++ b/redisson/src/main/java/org/redisson/connection/MasterSlaveEntry.java
@@ -448,9 +448,12 @@ public class MasterSlaveEntry {
             slaveDown(oldMaster.getClient().getAddr(), FreezeReason.MANAGER);
 
             // check if at least one slave is available, use master as slave if false
-            if (!config.checkSkipSlavesInit()
-                    && slaveBalancer.getAvailableClients() == 0) {
-                slaveUp(newMasterClient.getAddr(), FreezeReason.SYSTEM);
+            if (!config.checkSkipSlavesInit()) {
+                if (slaveBalancer.getAvailableClients() == 0) {
+                    slaveUp(newMasterClient.getAddr(), FreezeReason.SYSTEM);
+                } else {
+                    slaveDown(newMasterClient.getAddr(), FreezeReason.SYSTEM);
+                }
             }
             oldMaster.shutdownAsync();
             log.info("master {} has changed to {}", oldMaster.getClient().getAddr(), masterEntry.getClient().getAddr());
Fixed - master node shouldn't be initialized as slave in single mode. #<I>