If a node is linked to an external target which does exist (target returns '404 file not found' for each access), Client.copy(...) retries indefintely as a result of a tail recursion. Updated code to break up the tail recursion.