diff --git a/core/src/test/scala/spark/storage/BlockManagerSuite.scala b/core/src/test/scala/spark/storage/BlockManagerSuite.scala
index 63501f0613ea845a1846f15e8ad057ed5133c74e..14ff5f8e3d53cdd6dcc79a1ec6a36273dce25da2 100644
--- a/core/src/test/scala/spark/storage/BlockManagerSuite.scala
+++ b/core/src/test/scala/spark/storage/BlockManagerSuite.scala
@@ -1,15 +1,18 @@
 package spark.storage
 
 import spark.KryoSerializer
+import spark.util.ByteBufferInputStream
 
 import org.scalatest.FunSuite
 import org.scalatest.BeforeAndAfter
 
+import java.nio.ByteBuffer
+
 class BlockManagerSuite extends FunSuite with BeforeAndAfter{
   before {
      BlockManagerMaster.startBlockManagerMaster(true, true)
   }
-  
+
   test("manager-master interaction") {
     val store = new BlockManager(2000, new KryoSerializer)
     val a1 = new Array[Byte](400)
@@ -208,5 +211,17 @@ class BlockManagerSuite extends FunSuite with BeforeAndAfter{
     assert(store.get("list3").get.size === 2)
     assert(store.get("list4") != None, "list4 was not in store")
     assert(store.get("list4").get.size === 2)
-  } 
+  }
+
+  test("ByteBufferInputStream bugs") {
+    val buffer = ByteBuffer.wrap(Array[Int](254, 255, 0, 1, 2).map(_.toByte).toArray)
+    val stream = new ByteBufferInputStream(buffer)
+    val temp = new Array[Byte](10)
+    assert(stream.read() === 254, "unexpected byte read")
+    assert(stream.read() === 255, "unexpected byte read")
+    assert(stream.read() === 0, "unexpected byte read")
+    assert(stream.read(temp, 0, temp.length) === 2, "unexpected number of bytes read")
+    assert(stream.read() === -1, "end of stream not signalled")
+    assert(stream.read(temp, 0, temp.length) === -1, "end of stream not signalled")
+  }
 }