Index: branches/supervisor/src/main/java/omq/supervisor/Supervisor.java
===================================================================
--- branches/supervisor/src/main/java/omq/supervisor/Supervisor.java	(revision 92)
+++ branches/supervisor/src/main/java/omq/supervisor/Supervisor.java	(revision 93)
@@ -9,3 +9,5 @@
 	public void spawnObject(OmqSettings settings) throws Exception;
 
+	public void unbindObject(OmqSettings settings) throws Exception;
+
 }
Index: branches/supervisor/src/main/java/omq/supervisor/SupervisorImpl.java
===================================================================
--- branches/supervisor/src/main/java/omq/supervisor/SupervisorImpl.java	(revision 92)
+++ branches/supervisor/src/main/java/omq/supervisor/SupervisorImpl.java	(revision 93)
@@ -44,5 +44,8 @@
 
 		String reference = settings.getReference();
-		objectSettings.put(reference, settings);
+
+		if (!objectSettings.containsKey(reference)) {
+			objectSettings.put(reference, settings);
+		}
 
 		int minObjects = settings.getMinNumberObjects();
@@ -69,4 +72,39 @@
 		}
 
+	}
+
+	@Override
+	public void unbindObject(OmqSettings settings) throws Exception {
+		String reference = settings.getReference();
+
+		int minObjects = settings.getMinNumberObjects();
+
+		Channel channel = getBroker().getNewChannel();
+
+		int numObjects = 0;
+		try {
+			DeclareOk dok = channel.queueDeclarePassive(reference);
+			numObjects = dok.getConsumerCount();
+			channel.close();
+
+			for (RemoteBroker broker : brokers) {
+				if (broker.hasObject(reference) && (numObjects - 1) >= minObjects) {
+					broker.deleteObject(reference);
+				}
+			}
+
+		} 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 92)
+++ branches/supervisor/src/main/java/omq/supervisor/SupervisorThread.java	(revision 93)
@@ -61,4 +61,5 @@
 			// pregunta a tots i qui no té l'objecte li poses
 		} else if (numMessages < minMessages && minObjects > numConsumers) {
+			supervisor.unbindObject(settings);
 			// delete:
 			// pregunta a tots i qui té l'objecte li treus
