diff --git a/src/Controller.java b/src/Controller.java
index d1691785b9bce222e65b61bb5150d9846a31cab9..87085e8b13da2202a4e0455b62a4265c2ab3bdaa 100644
--- a/src/Controller.java
+++ b/src/Controller.java
@@ -496,25 +496,29 @@ public class Controller extends Server {
 
 
     private void rebalanceOperation() {
-       if (rebalanceInProgess) rebalanceCounter++;
-       else {
-           threadIDOutput("Started Rebalance Operation");
+        threadIDOutput("Started Rebalance Operation");
 
-           State currentSate = currentState();
+        if (rebalanceInProgess) {
+            rebalanceCounter++;
+            threadIDOutput("Rebalance already in progress, queued for later");
+        }
+        else if (fileIndex.size() == 0) {
+            threadIDOutput("Rebalance cancelled, no files currently stored");
+        }
+        else {
+            State currentSate = currentState();
 
-           List<Change> changes = rebalance(currentSate);
+            List<Change> changes = rebalance(currentSate);
 
-           if (!changes.isEmpty()) rebalanceChanges(changes);
-           else rebalanceInProgess = false;
-       }
+            if (!changes.isEmpty()) rebalanceChanges(changes);
+            else rebalanceInProgess = false;
+        }
     }
 
 
 
     public DStoreConnection registerDStore(Socket requestingSocket, String joinRequest) {
-        if (fileIndex.size() > 0) {
-            rebalanceOperation();
-        }
+        rebalanceOperation();
 
 
         Socket dSock = requestingSocket;