diff --git a/src/exclude.cpp b/src/exclude.cpp
index 7f069eb..202ab91 100644
--- a/src/exclude.cpp
+++ b/src/exclude.cpp
@@ -21,12 +21,14 @@
  * @author Alexander Afanasyev <http://lasr.cs.ucla.edu/afanasyev/index.html>
  */
 
-#include "common.hpp"
-
 #include "exclude.hpp"
 
+#include <boost/static_assert.hpp>
+
 namespace ndn {
 
+BOOST_STATIC_ASSERT((boost::is_base_of<tlv::Error, Exclude::Error>::value));
+
 Exclude::Exclude()
 {
 }
@@ -40,6 +42,10 @@
 size_t
 Exclude::wireEncode(EncodingImpl<T>& block) const
 {
+  if (m_exclude.empty()) {
+    throw Error("Exclude filter cannot be empty");
+  }
+
   size_t totalLength = 0;
 
   // Exclude ::= EXCLUDE-TYPE TLV-LENGTH Any? (NameComponent (Any)?)+
@@ -87,9 +93,16 @@
 void
 Exclude::wireDecode(const Block& wire)
 {
+  if (wire.type() != tlv::Exclude)
+    throw tlv::Error("Unexpected TLV type when decoding Exclude");
+
   m_wire = wire;
   m_wire.parse();
 
+  if (m_wire.elements_size() == 0) {
+    throw Error("Exclude element cannot be empty");
+  }
+
   // Exclude ::= EXCLUDE-TYPE TLV-LENGTH Any? (NameComponent (Any)?)+
   // Any     ::= ANY-TYPE TLV-LENGTH(=0)
 
@@ -127,8 +140,6 @@
     }
 }
 
-
-
 // example: ANY /b /d ANY /f
 //
 // ordered in map as:
@@ -166,7 +177,6 @@
   return *this;
 }
 
-
 // example: ANY /b0 /d0 ANY /f0
 //
 // ordered in map as:
@@ -251,7 +261,6 @@
   return *this;
 }
 
-
 std::ostream&
 operator<<(std::ostream& os, const Exclude& exclude)
 {
@@ -271,5 +280,4 @@
   return os;
 }
 
-
 } // namespace ndn
