{  return false;  }
 
 bool IcmpData::match_time_exceeded(const uint16_t identifier,
-                                   const uint16_t sequence_number) const
+                                   const uint16_t sequence_number,
+                                   const address &destination_address) const
 {  return false;  }
 
 std::size_t IcmpData::get_size() const
 
                                   const address &destination_address) const;
 
     virtual bool match_time_exceeded(const uint16_t identifier,
-                                     const uint16_t sequence_number) const;
+                                     const uint16_t sequence_number,
+                                     const address &destination_address) const;
 
     // including 4 bytes from ICMPv4 header
     std::size_t get_size() const;
 
                                        == destination_address;
 }
 
-bool IcmpDestinationUnreachableData::match_time_exceeded(
-                                           const uint16_t identifier,
-                                           const uint16_t sequence_number) const
-{ return false; }
-
 /**
  * @brief Prints the destination unreachable messages.
  *
 
                                       const uint16_t sequence_number,
                                       const address &destination_address) const;
 
-    bool match_time_exceeded(const uint16_t identifier,
-                             const uint16_t sequence_number) const;
-
     /**
      * @brief Prints the destination unreachable messages.
      *
 
                                      const uint16_t sequence_number,
                                      const address &destination_address) const
 {
-    return icmp_data_ptr->match_time_exceeded(identifier, sequence_number);
-    // do not test ip since probably comes from router on route to dest. addr
+    return icmp_data_ptr->match_time_exceeded(identifier,
+                                              sequence_number,
+                                              destination_address);
 }
 
 bool IcmpPacket::match_echo_reply(const uint16_t identifier,
 
 {}
 
 bool IcmpTimeExceededData::match_time_exceeded(
-                                           const uint16_t identifier,
-                                           const uint16_t sequence_number) const
-{
-    return IcmpData_PingFailReply::match_ping_request(identifier,
-                                                      sequence_number);
-}
-
-bool IcmpTimeExceededData::match_destination_unreachable(
                                        const uint16_t identifier,
                                        const uint16_t sequence_number,
                                        const address &destination_address) const
-{ return false; }
+{
+    return IcmpData_PingFailReply::match_ping_request(identifier,
+                                                      sequence_number)
+        && IcmpData::get_ip_header()->get_destination_address()
+                                       == destination_address;
+}
 
 void IcmpTimeExceededData::print(
             const size_t &bytes_received,
 
 public:
     IcmpTimeExceededData(const std::size_t size_arg);
 
-    bool match_destination_unreachable(const uint16_t identifier,
-                                      const uint16_t sequence_number,
-                                      const address &destination_address) const;
-
     bool match_time_exceeded(const uint16_t identifier,
-                             const uint16_t sequence_number) const;
+                             const uint16_t sequence_number,
+                             const address &destination_address) const;
 
     void print( const size_t &bytes_received,
                 const boost::posix_time::ptime &time_packet_sent,
 
     BOOST_CHECK_EQUAL( packet->get_icmp_code(), 0 );
     BOOST_CHECK_EQUAL( packet->get_icmp_size(), 48 );
     BOOST_CHECK( packet->match_time_exceeded(0x4ae3, 1,
-                 boost::asio::ip::address_v4::from_string("193.168.7.1")) );
+                 boost::asio::ip::address_v4::from_string("216.218.186.2")) );
 }
 
 BOOST_AUTO_TEST_CASE( DestinationUnreachable )