Index: trunk/Nebulous/lib/Nebulous/Client.pm
===================================================================
--- trunk/Nebulous/lib/Nebulous/Client.pm	(revision 13058)
+++ trunk/Nebulous/lib/Nebulous/Client.pm	(revision 13067)
@@ -1,5 +1,5 @@
 # Copyright (c) 2004  Joshua Hoblitt
 #
-# $Id: Client.pm,v 1.26 2007-04-27 21:30:16 jhoblitt Exp $
+# $Id: Client.pm,v 1.27 2007-04-27 23:50:57 jhoblitt Exp $
 
 package Nebulous::Client;
@@ -583,5 +583,5 @@
     my $self = shift;
 
-    my ( $key, $new_key ) = validate_pos( @_,
+    my ( $key, $new_key, $volume ) = validate_pos( @_,
         {
             type => SCALAR,
@@ -589,4 +589,9 @@
         {
             type => SCALAR,
+        },
+        {
+            #volume
+            type        => SCALAR,
+            optional    => 1,
         },
     );
@@ -602,5 +607,10 @@
     }
 
-    my $new_fh  = $self->open_create( $new_key );
+    my $new_fh;
+    if (defined $volume) {
+        $new_fh  = $self->open_create( $new_key, 0, $volume );
+    } else {
+        $new_fh  = $self->open_create( $new_key );
+    }
     unless ( $new_fh ) {
         $log->debug( "can not open object" );
Index: trunk/Nebulous/lib/Nebulous/Client.pod
===================================================================
--- trunk/Nebulous/lib/Nebulous/Client.pod	(revision 13058)
+++ trunk/Nebulous/lib/Nebulous/Client.pod	(revision 13067)
@@ -24,5 +24,5 @@
     my $fh = $neb->open( "key", 'read' );
     $data->delete( "key" );
-    $data->copy( "key", "new_key" );
+    $data->copy( "key", "new_key", "node01" );
     $data->move( "key", "new_key" );
     $data->delete_instance( $uri );
@@ -330,5 +330,5 @@
 
 
-=item * copy($key, $new_key)
+=item * copy($key, $new_key, $volume)
 
 Copy a storage object.
@@ -343,4 +343,10 @@
 
 The destination object.
+
+=item * volume
+
+The preferred storage location of the new instance.
+
+This parameter is optional.
 
 =back
