diff --git a/tests_boost/Makefile.am b/tests_boost/Makefile.am
index dadf1c1..3564e82 100644
--- a/tests_boost/Makefile.am
+++ b/tests_boost/Makefile.am
@@ -7,6 +7,7 @@
   test-encode-decode-certificate.cpp \
   test-encode-decode-data.cpp \
   test-encode-decode-interest.cpp \
-  test-encode-decode-forwarding-entry.cpp
+  test-encode-decode-forwarding-entry.cpp \
+  test-encode-decode-block.cpp
 
 unit_tests_LDADD = ../libndn-cpp-dev.la @BOOST_SYSTEM_LIB@ @BOOST_UNIT_TEST_FRAMEWORK_LIB@ @OPENSSL_LIBS@ @CRYPTOPP_LIBS@ @OSX_SECURITY_LIBS@
diff --git a/tests_boost/test-encode-decode-block.cpp b/tests_boost/test-encode-decode-block.cpp
new file mode 100644
index 0000000..f14b83a
--- /dev/null
+++ b/tests_boost/test-encode-decode-block.cpp
@@ -0,0 +1,66 @@
+/**
+ * Copyright (C) 2013 Regents of the University of California.
+ * @author: Jeff Thompson <jefft0@remap.ucla.edu>
+ * See COPYING for copyright and distribution information.
+ */
+
+#include <boost/test/unit_test.hpp>
+
+#include <ndn-cpp-dev/interest.hpp>
+
+using namespace std;
+using namespace ndn;
+
+BOOST_AUTO_TEST_SUITE(TestBlock)
+
+const uint8_t Interest1[] = {
+  0x1,  0x41, // NDN Interest
+      0x3,  0x14, // Name
+          0x4,  0x5, // NameComponent
+              0x6c,  0x6f,  0x63,  0x61,  0x6c,
+          0x4,  0x3, // NameComponent
+              0x6e,  0x64,  0x6e,
+          0x4,  0x6, // NameComponent
+              0x70,  0x72,  0x65,  0x66,  0x69,  0x78,
+      0x5,  0x1f, // Selectors
+          0x09,  0x1,  0x1,  // MinSuffix
+          0x0a,  0x1,  0x1,  // MaxSuffix
+          0x0c,  0x14, // Exclude
+              0x4,  0x4, // NameComponent
+                  0x61,  0x6c,  0x65,  0x78,
+              0x4,  0x4, // NameComponent
+                  0x78,  0x78,  0x78,  0x78,
+              0xf,  0x0, // Any
+              0x4,  0x4, // NameComponent
+                  0x79,  0x79,  0x79,  0x79,
+          0x0d,  0x1, // ChildSelector
+              0x1,
+      0x6,  0x1, // Nonce
+          0x1,
+      0x7,  0x1, // Scope
+          0x1,
+      0x8,       // InterestLifetime
+          0x2,  0x3,  0xe8
+};
+
+BOOST_AUTO_TEST_CASE (Decode)
+{
+  boost::iostreams::stream<boost::iostreams::array_source> is (reinterpret_cast<const char *>(Interest1), sizeof(Interest1));
+  
+  Block interestBlock(is);
+
+  ndn::Interest i;
+  BOOST_REQUIRE_NO_THROW(i.wireDecode(interestBlock));
+
+  BOOST_REQUIRE_EQUAL(i.getName().toUri(), "/local/ndn/prefix");
+  BOOST_REQUIRE_EQUAL(i.getScope(), 1);
+  BOOST_REQUIRE_EQUAL(i.getInterestLifetime(), 1000);
+  BOOST_REQUIRE_EQUAL(i.getMinSuffixComponents(), 1);
+  BOOST_REQUIRE_EQUAL(i.getMaxSuffixComponents(), 1);
+  BOOST_REQUIRE_EQUAL(i.getChildSelector(), 1);
+  BOOST_REQUIRE_EQUAL(i.getMustBeFresh(), false);
+  BOOST_REQUIRE_EQUAL(i.getExclude().toUri(), "alex,xxxx,*,yyyy");
+  BOOST_REQUIRE_EQUAL(i.getNonce(), 1);
+}
+
+BOOST_AUTO_TEST_SUITE_END()
