diff --git a/AUTHORS.md b/AUTHORS.md
index 3760340..b8ce63a 100644
--- a/AUTHORS.md
+++ b/AUTHORS.md
@@ -30,3 +30,4 @@
 * Vince Lehman          <http://vslehman.com>
 * Mathias Gibbens       <gibmat@cs.arizona.edu>
 * Chengyu Fan           <chengyu@cs.colostate.edu>
+* Qiuhan Ding           <http://irl.cs.ucla.edu/~qiuhanding/>
diff --git a/src/name-component.cpp b/src/name-component.cpp
index 8aad977..8d2db29 100644
--- a/src/name-component.cpp
+++ b/src/name-component.cpp
@@ -58,7 +58,7 @@
 Component::Component(const Block& wire)
   : Block(wire)
 {
-  if (type() != tlv::NameComponent && type() != tlv::ImplicitSha256DigestComponent)
+  if (!isGeneric() && !isImplicitSha256Digest())
     throw Error("Cannot construct name::Component from not a NameComponent "
                 "or ImplicitSha256DigestComponent TLV wire block");
 }
@@ -475,11 +475,8 @@
 void
 Component::wireDecode(const Block& wire)
 {
-  if (wire.type() != tlv::NameComponent || wire.type() != tlv::ImplicitSha256DigestComponent)
-    throw Error("name::Component::wireDecode called on not a NameComponent "
-                "or ImplicitSha256DigestComponent TLV wire block");
-
   *this = wire;
+  // validity check is done within Component(const Block& wire)
 }
 
 } // namespace name
diff --git a/tests/unit-tests/test-name.cpp b/tests/unit-tests/test-name.cpp
index 01bd884..8c86d79 100644
--- a/tests/unit-tests/test-name.cpp
+++ b/tests/unit-tests/test-name.cpp
@@ -50,6 +50,20 @@
                            0x8,  0x3, // NameComponent
                              0x6e,  0x64,  0x6e};
 
+static const uint8_t TestNameComponent[] = {
+        0x8, 0x3, // NameComponent
+          0x6e, 0x64, 0x6e};
+
+static const uint8_t TestDigestComponent[] = {
+        0x1, 0x20, // ImplicitSha256DigestComponent
+          0x28, 0xba, 0xd4, 0xb5, 0x27, 0x5b, 0xd3, 0x92,
+          0xdb, 0xb6, 0x70, 0xc7, 0x5c, 0xf0, 0xb6, 0x6f,
+          0x13, 0xf7, 0x94, 0x2b, 0x21, 0xe8, 0x0f, 0x55,
+          0xc0, 0xe8, 0x6b, 0x37, 0x47, 0x53, 0xa5, 0x48 };
+
+const uint8_t Component1[] = {0x7, 0x3, // Error in Type
+                                0x6e, 0x64, 0x6e};
+
 
 BOOST_AUTO_TEST_CASE(Basic)
 {
@@ -98,6 +112,22 @@
   BOOST_CHECK_EQUAL(name.toUri(), "/local/ndn/prefix");
 }
 
+BOOST_AUTO_TEST_CASE(DecodeComponent)
+{
+  Block componentBlock(TestNameComponent, sizeof(TestNameComponent));
+  name::Component nameComponent;
+  BOOST_REQUIRE_NO_THROW(nameComponent.wireDecode(componentBlock));
+  BOOST_CHECK_EQUAL(nameComponent.toUri(), "ndn");
+
+  Block digestComponentBlock(TestDigestComponent, sizeof(TestDigestComponent));
+  name::Component digestComponent;
+  BOOST_REQUIRE_NO_THROW(digestComponent.wireDecode(digestComponentBlock));
+
+  Block errorBlock(Component1, sizeof(Component1));
+  name::Component errorComponent;
+  BOOST_REQUIRE_THROW(errorComponent.wireDecode(errorBlock), name::Component::Error);
+}
+
 BOOST_AUTO_TEST_CASE(AppendsAndMultiEncode)
 {
   Name name("/local");
