Index: trunk/Nebulous/lib/Nebulous/Client.pm
===================================================================
--- trunk/Nebulous/lib/Nebulous/Client.pm	(revision 13057)
+++ trunk/Nebulous/lib/Nebulous/Client.pm	(revision 13058)
@@ -1,5 +1,5 @@
 # Copyright (c) 2004  Joshua Hoblitt
 #
-# $Id: Client.pm,v 1.25 2007-04-27 00:09:22 jhoblitt Exp $
+# $Id: Client.pm,v 1.26 2007-04-27 21:30:16 jhoblitt Exp $
 
 package Nebulous::Client;
@@ -249,8 +249,13 @@
     my $self = shift;
 
-    my ( $key ) = validate_pos( @_,
+    my ( $key, @params ) = validate_pos( @_,
         {
             type => SCALAR,
         },
+        {
+            # volume
+            type        => SCALAR,
+            optional    => 1,
+        },
     );
 
@@ -258,5 +263,5 @@
 
     # need some way to determine which is the best instance to remove
-    my $locations = $self->find_instances( $key );
+    my $locations = $self->find_instances( $key, @params );
     unless ( $locations ) {
             $log->debug( "no instances" );
Index: trunk/Nebulous/lib/Nebulous/Client.pod
===================================================================
--- trunk/Nebulous/lib/Nebulous/Client.pod	(revision 13057)
+++ trunk/Nebulous/lib/Nebulous/Client.pod	(revision 13058)
@@ -16,5 +16,5 @@
     my $fh = $neb->open_create( "key", 0, "node01", "example" );
     $neb->replicate( "key", "node01" );
-    $neb->cull( "key" );
+    $neb->cull( "key", "node01" );
     $neb->lock( "key", 'write' );
     $neb->unlock( "key", 'write' );
@@ -174,5 +174,5 @@
 
 
-=item * cull($key)
+=item * cull($key, $volume)
 
 Removes an instance from a storage object.
@@ -183,4 +183,12 @@
 
 The storage object key (name).
+
+=item * volume
+
+The volume to attempt to remove an instance from.  If there is no instance on
+the specified volume this method will fail.  If there is more then one instance
+on the specified volume I<only one> of them will be removed.
+
+This parameter is optional.
 
 =back
