diff --git a/c/include/brotli/encode.h b/c/include/brotli/encode.h
index 4bb76e1..e4cf18b 100755
--- a/c/include/brotli/encode.h
+++ b/c/include/brotli/encode.h
@@ -72,7 +72,9 @@
    * Actual flush is performed when input stream is depleted and there is enough
    * space in output stream. This means that client should repeat
    * ::BROTLI_OPERATION_FLUSH operation until @p available_in becomes @c 0, and
-   * ::BrotliEncoderHasMoreOutput returns ::BROTLI_FALSE.
+   * ::BrotliEncoderHasMoreOutput returns ::BROTLI_FALSE. If output is acquired
+   * via ::BrotliEncoderTakeOutput, then operation should be repeated after
+   * output buffer is drained.
    *
    * @warning Until flush is complete, client @b SHOULD @b NOT swap,
    *          reduce or extend input stream.
@@ -86,8 +88,10 @@
    *
    * Actual finalization is performed when input stream is depleted and there is
    * enough space in output stream. This means that client should repeat
-   * ::BROTLI_OPERATION_FLUSH operation until @p available_in becomes @c 0, and
-   * ::BrotliEncoderHasMoreOutput returns ::BROTLI_FALSE.
+   * ::BROTLI_OPERATION_FINISH operation until @p available_in becomes @c 0, and
+   * ::BrotliEncoderHasMoreOutput returns ::BROTLI_FALSE. If output is acquired
+   * via ::BrotliEncoderTakeOutput, then operation should be repeated after
+   * output buffer is drained.
    *
    * @warning Until finalization is complete, client @b SHOULD @b NOT swap,
    *          reduce or extend input stream.
diff --git a/c/tools/brotli.c b/c/tools/brotli.c
index f23917a..497ae65 100755
--- a/c/tools/brotli.c
+++ b/c/tools/brotli.c
@@ -174,11 +174,11 @@
 
   for (i = 1; i < argc; ++i) {
     const char* arg = argv[i];
-    size_t arg_len = strlen(arg);
-
     /* C99 5.1.2.2.1: "members argv[0] through argv[argc-1] inclusive shall
        contain pointers to strings"; NULL and 0-length are not forbidden. */
-    if (!arg || arg_len == 0) {
+    size_t arg_len = arg ? strlen(arg) : 0;
+
+    if (arg_len == 0) {
       params->not_input_indices[next_option_index++] = i;
       continue;
     }
@@ -588,7 +588,9 @@
 static BROTLI_BOOL CloseFiles(Context* context, BROTLI_BOOL success) {
   BROTLI_BOOL is_ok = BROTLI_TRUE;
   if (!context->test_integrity && context->fout) {
-    if (!success) unlink(context->current_output_path);
+    if (!success && context->current_output_path) {
+      unlink(context->current_output_path);
+    }
     if (fclose(context->fout) != 0) {
       if (success) {
         fprintf(stderr, "fclose failed [%s]: %s\n",
@@ -612,7 +614,7 @@
       is_ok = BROTLI_FALSE;
     }
   }
-  if (success && context->junk_source) {
+  if (success && context->junk_source && context->current_input_path) {
     unlink(context->current_input_path);
   }
 
diff --git a/docs/encode.h.3 b/docs/encode.h.3
index 01b4f4f..dd420bb 100755
--- a/docs/encode.h.3
+++ b/docs/encode.h.3
@@ -1,4 +1,4 @@
-.TH "encode.h" 3 "Wed Aug 2 2017" "Brotli" \" -*- nroff -*-
+.TH "encode.h" 3 "Wed Sep 20 2017" "Brotli" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -210,7 +210,7 @@
 Process input\&. Encoder may postpone producing output, until it has processed enough input\&. 
 .TP
 \fB\fIBROTLI_OPERATION_FLUSH \fP\fP
-Produce output for all processed input\&. Actual flush is performed when input stream is depleted and there is enough space in output stream\&. This means that client should repeat \fBBROTLI_OPERATION_FLUSH\fP operation until \fCavailable_in\fP becomes \fC0\fP, and \fBBrotliEncoderHasMoreOutput\fP returns \fBBROTLI_FALSE\fP\&.
+Produce output for all processed input\&. Actual flush is performed when input stream is depleted and there is enough space in output stream\&. This means that client should repeat \fBBROTLI_OPERATION_FLUSH\fP operation until \fCavailable_in\fP becomes \fC0\fP, and \fBBrotliEncoderHasMoreOutput\fP returns \fBBROTLI_FALSE\fP\&. If output is acquired via \fBBrotliEncoderTakeOutput\fP, then operation should be repeated after output buffer is drained\&.
 .PP
 \fBWarning:\fP
 .RS 4
@@ -220,7 +220,7 @@
 When flush is complete, output data will be sufficient for decoder to reproduce all the given input\&. 
 .TP
 \fB\fIBROTLI_OPERATION_FINISH \fP\fP
-Finalize the stream\&. Actual finalization is performed when input stream is depleted and there is enough space in output stream\&. This means that client should repeat \fBBROTLI_OPERATION_FLUSH\fP operation until \fCavailable_in\fP becomes \fC0\fP, and \fBBrotliEncoderHasMoreOutput\fP returns \fBBROTLI_FALSE\fP\&.
+Finalize the stream\&. Actual finalization is performed when input stream is depleted and there is enough space in output stream\&. This means that client should repeat \fBBROTLI_OPERATION_FINISH\fP operation until \fCavailable_in\fP becomes \fC0\fP, and \fBBrotliEncoderHasMoreOutput\fP returns \fBBROTLI_FALSE\fP\&. If output is acquired via \fBBrotliEncoderTakeOutput\fP, then operation should be repeated after output buffer is drained\&.
 .PP
 \fBWarning:\fP
 .RS 4
