'Internal clone helper.'

def _clone(self, deepcopy=True):

    clone = self._clone_base()
    values_to_clone = ('spec', 'projection', 'skip', 'limit', 'max_time_ms', 'max_await_time_ms', 'comment', 'max', 'min', 'ordering', 'explain', 'hint', 'batch_size', 'max_scan', 'manipulate', 'query_flags', 'modifiers', 'collation')
    data = dict(((k, v) for (k, v) in iteritems(self.__dict__) if (k.startswith('_Cursor__') and (k[9:] in values_to_clone))))
    if deepcopy:
        data = self._deepcopy(data)
    clone.__dict__.update(data)
    return clone
