dup may return < 0
mark unused