Index: branches/supervisor/src/main/java/omq/supervisor/SupervisorImpl.java
===================================================================
--- branches/supervisor/src/main/java/omq/supervisor/SupervisorImpl.java	(revision 93)
+++ branches/supervisor/src/main/java/omq/supervisor/SupervisorImpl.java	(revision 94)
@@ -91,4 +91,5 @@
 				if (broker.hasObject(reference) && (numObjects - 1) >= minObjects) {
 					broker.deleteObject(reference);
+					break;
 				}
 			}
@@ -96,14 +97,4 @@
 		} catch (Exception io) {
 			// The queue doesn't exist & the channel has been closed
-		}
-
-		for (RemoteBroker broker : brokers) {
-			if (!broker.hasObject(reference) && minObjects >= numObjects) {
-				broker.spawnObject(reference, settings.getClassName(), settings.getProps());
-				numObjects++;
-				if (minObjects >= numObjects) {
-					break;
-				}
-			}
 		}
 	}
Index: branches/supervisor/src/main/java/omq/supervisor/SupervisorThread.java
===================================================================
--- branches/supervisor/src/main/java/omq/supervisor/SupervisorThread.java	(revision 93)
+++ branches/supervisor/src/main/java/omq/supervisor/SupervisorThread.java	(revision 94)
@@ -55,13 +55,14 @@
 		System.out.println("Num Consumers: " + numConsumers + ", num Messages: " + numMessages);
 
-		if (maxMessages < numMessages || minObjects < numConsumers) {
+		if (maxMessages < numMessages || numConsumers < minObjects ) {
 			System.out.println("SPAWN TIME!!");
 			supervisor.spawnObject(settings);
 			// spawn:
-			// pregunta a tots i qui no té l'objecte li poses
-		} else if (numMessages < minMessages && minObjects > numConsumers) {
+			// pregunta a tots i qui no t�� l'objecte li poses
+		} else if (numMessages < minMessages && minObjects < numConsumers) {
+			System.out.println("Unbinding object!!!");
 			supervisor.unbindObject(settings);
 			// delete:
-			// pregunta a tots i qui té l'objecte li treus
+			// pregunta a tots i qui t�� l'objecte li treus
 		}
 	}
