diff --git a/util/util.go b/util/util.go
index a96235859a2e478be24541a05b9a25229c086aab..4f9fe088947e304b3ba001137314d45728b95662 100644
--- a/util/util.go
+++ b/util/util.go
@@ -62,40 +62,6 @@ func ExpandPathnames(paths []string) ([]string, error) {
 	return out, nil
 }
 
-// byteChanReader wraps a byte chan in a reader
-type byteChanReader struct {
-	in  chan []byte
-	buf []byte
-}
-
-func NewByteChanReader(in chan []byte) io.Reader {
-	return &byteChanReader{in: in}
-}
-
-func (bcr *byteChanReader) Read(output []byte) (int, error) {
-	remain := output
-	remainLen := len(output)
-	outputLen := 0
-	more := false
-	next := bcr.buf
-
-	for {
-		n := copy(remain, next)
-		remainLen -= n
-		outputLen += n
-		if remainLen == 0 {
-			bcr.buf = next[n:]
-			return outputLen, nil
-		}
-
-		remain = remain[n:]
-		next, more = <-bcr.in
-		if !more {
-			return outputLen, io.EOF
-		}
-	}
-}
-
 type randGen struct {
 	rand.Rand
 }
diff --git a/util/util_test.go b/util/util_test.go
index afd34b10ee42deb61ba80ea0d6c3587132c57eac..b1ef770bace8cb6ca3cf514f91cd5d2653514c02 100644
--- a/util/util_test.go
+++ b/util/util_test.go
@@ -2,7 +2,6 @@ package util
 
 import (
 	"bytes"
-	"math/rand"
 	"testing"
 
 	mh "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-multihash"
@@ -28,43 +27,6 @@ func TestKey(t *testing.T) {
 	}
 }
 
-func TestByteChanReader(t *testing.T) {
-	if testing.Short() {
-		t.SkipNow()
-	}
-
-	var data bytes.Buffer
-	var data2 bytes.Buffer
-	dch := make(chan []byte, 8)
-	randr := NewTimeSeededRand()
-
-	go func() {
-		defer close(dch)
-		for i := 0; i < rand.Intn(100)+100; i++ {
-			chunk := make([]byte, rand.Intn(100000)+10)
-			randr.Read(chunk)
-			data.Write(chunk)
-			dch <- chunk
-		}
-	}()
-
-	read := NewByteChanReader(dch)
-
-	// read in random, weird sizes to exercise saving buffer.
-	for {
-		buf := make([]byte, rand.Intn(10)*10)
-		n, err := read.Read(buf)
-		data2.Write(buf[:n])
-		if err != nil {
-			break
-		}
-	}
-
-	if !bytes.Equal(data2.Bytes(), data.Bytes()) {
-		t.Fatal("Reader failed to stream correct bytes")
-	}
-}
-
 func TestXOR(t *testing.T) {
 	cases := [][3][]byte{
 		[3][]byte{