Pausar / retomar downloads no Objective-C

Tudo bem. Espero que este seja meu último post sobre o gerenciador de downloads que estou escrevendo no Objective-C. Tudo parece funcionar bem, exceto a funcionalidade de pausa / retomada. Meu problema é que, quando um download tenta continuar de onde parou, ele anexa os dados que recebe ao arquivo, mas ainda parece que está tentando baixar o arquivo inteiro. Isso resulta em um arquivo maior do que o arquivo original deveria ser. Aqui está o código que estou usando para baixar arquivos. Estou fazendo algo errado?

-(void)start:(unsigned int)fromByte {
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:self.url] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:DEFAULT_TIMEOUT];

    // Define the bytes we wish to download.
    NSString *range = [NSString stringWithFormat:@"bytes=%i-", fromByte];
    [request setValue:range forHTTPHeaderField:@"Range"];

    // Data should immediately start downloading after the connection is created.
    self.urlConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:TRUE];

    if (!self.urlConnection) {
        #warning Handle error.
    }
}