Index: trunk/Nebulous/nebclient/src/nebclient.c
===================================================================
--- trunk/Nebulous/nebclient/src/nebclient.c	(revision 24923)
+++ trunk/Nebulous/nebclient/src/nebclient.c	(revision 24931)
@@ -883,4 +883,37 @@
 }
 
+int nebThereCanBeOnlyOne(nebServer *server, const char *key, const char *volume)
+{
+    REQUIRE_SERVER;
+
+    if (!key) {
+        nebSetErr(server, "parameter 'key' may not be NULL");
+
+        return -1;
+    }
+
+    if (nebPrune(server, key) < 0 ) {
+    }
+
+    nebObjectInstances *locations = NULL;
+    if (volume) {
+        locations = nebFindInstances(server, key, NULL);
+    }
+
+    if (locations && locations->n) {
+        nebObjectInstances *instances = nebFindInstances(server, key, NULL);
+        for (long i = 0; i < instances->n; i++) {
+            if (strcmp(locations->URI[0], instances->URI[i])) {
+                nebDeleteInstance(server, key, instances->URI[i]);
+            }
+        }
+        nebObjectInstancesFree(instances);
+    }
+    nebObjectInstancesFree(locations);
+
+
+    return 0;
+}
+
 
 char *nebErr(nebServer *server)
Index: trunk/Nebulous/nebclient/src/nebclient.h
===================================================================
--- trunk/Nebulous/nebclient/src/nebclient.h	(revision 24923)
+++ trunk/Nebulous/nebclient/src/nebclient.h	(revision 24931)
@@ -296,5 +296,5 @@
 nebObjectStat *nebStat(
     nebServer *server,                  ///< nebServer object
-    const char *key                     /// storage object key (name)
+    const char *key                     ///< storage object key (name)
 );
 
@@ -309,6 +309,6 @@
 int nebChmod(
     nebServer *server,                  ///< nebServer object
-    const char *key,                    /// storage object key (name)
-    mode_t mode                         /// chmod(2) compatible mode (mode_t)
+    const char *key,                    ///< storage object key (name)
+    mode_t mode                         ///< chmod(2) compatible mode (mode_t)
 );
 
@@ -320,5 +320,16 @@
 int nebPrune(
     nebServer *server,                  ///< nebServer object
-    const char *key                     /// storage object key (name)
+    const char *key                     ///< storage object key (name)
+);
+
+/** Removes all but one instances of an object
+ *
+ * @return the number of available instances removed
+ */
+
+int nebThereCanBeOnlyOne(
+    nebServer *server,                  ///< nebServer object
+    const char *key,                    ///< storage object key (name)
+    const char *volume                  ///< leave remain instance on this volume
 );
 
