diff --git a/commands/http/multifilereader.go b/commands/http/multifilereader.go
index 7d976c7b98939b712b6f7e695a28c669807a5ee1..1e2d47e3bc3028cb335c5a24bf8a533ac2b085e9 100644
--- a/commands/http/multifilereader.go
+++ b/commands/http/multifilereader.go
@@ -90,21 +90,16 @@ func (mfr *MultiFileReader) Read(buf []byte) (written int, err error) {
 		}
 	}
 
-	var reader io.Reader
-
+	// if the buffer has something in it, read from it
 	if mfr.buf.Len() > 0 {
-		// if the buffer has something in it, read from it
-		reader = &mfr.buf
-
-	} else if mfr.currentFile != nil {
-		// otherwise, read from file data
-		reader = mfr.currentFile
+		return mfr.buf.Read(buf)
 	}
 
-	written, err = reader.Read(buf)
-	if err == io.EOF && reader == mfr.currentFile {
+	// otherwise, read from file data
+	written, err = mfr.currentFile.Read(buf)
+	if err == io.EOF {
 		mfr.currentFile = nil
-		return mfr.Read(buf)
+		return written, nil
 	}
 	return written, err
 }