diff --git a/src/gocat/main.go b/src/gocat/main.go
index 5c0b016ff9aae5c8538e1b510cd34cf1515284ac..39fef19843078de3fccaa0b2379e4932935b4fb8 100644
--- a/src/gocat/main.go
+++ b/src/gocat/main.go
@@ -33,14 +33,15 @@ func processFile(filename string) error {
 		}
 		defer f.Close()
 	}
-	if err := bufferedCopy(f, os.Stdout); err != nil {
+	buf := make([]byte, BUFFERSIZE)
+	if _, err := io.CopyBuffer(os.Stdout, f, buf); err != nil {
 		return err
 	}
 	return nil
 }
 
-func bufferedCopy(source io.Reader, destination io.Writer) error {
-	buf := make([]byte, BUFFERSIZE)
+// alternative implementation (if not using io.CopyBuffer)
+func copyBuffer(destination io.Writer, source io.Reader, buf []byte) error {
 	for {
 		n, err := source.Read(buf)
 		if err != nil && err != io.EOF {