diff --git a/helper/ccnx-header-helper.cc b/helper/ccnx-header-helper.cc
index 8fcd9d7..d3a3400 100644
--- a/helper/ccnx-header-helper.cc
+++ b/helper/ccnx-header-helper.cc
@@ -43,6 +43,7 @@
 
   if (read!=2) throw CcnxUnknownHeaderException();
 
+  NS_LOG_DEBUG (*packet);
   if (type[0] == INTEREST_BYTE0 && type[1] == INTEREST_BYTE1)
     {
       return CcnxHeaderHelper::INTEREST;
@@ -52,6 +53,7 @@
       return CcnxHeaderHelper::CONTENT_OBJECT;
     }
 
+  NS_LOG_DEBUG (*packet);
   throw CcnxUnknownHeaderException();
 }
 
diff --git a/model/ccnx-face.cc b/model/ccnx-face.cc
index 19ec448..25cc0a5 100644
--- a/model/ccnx-face.cc
+++ b/model/ccnx-face.cc
@@ -150,6 +150,7 @@
 CcnxFace::Send (Ptr<Packet> packet)
 {
   NS_LOG_FUNCTION (boost::cref (*this) << packet << packet->GetSize ());
+  NS_LOG_DEBUG (*packet);
 
   /// \todo Implement tracing, if requested
 
diff --git a/model/ccnx-l3-protocol.cc b/model/ccnx-l3-protocol.cc
index d216b4f..83ab9d2 100644
--- a/model/ccnx-l3-protocol.cc
+++ b/model/ccnx-l3-protocol.cc
@@ -260,6 +260,11 @@
 void 
 CcnxL3Protocol::Receive (const Ptr<CcnxFace> &face, const Ptr<const Packet> &p)
 {
+  if (!face->IsUp ())
+    return;
+
+  NS_LOG_DEBUG (*p);
+  
   NS_LOG_LOGIC ("Packet from face " << *face << " received on node " <<  m_node->GetId ());
 
   Ptr<Packet> packet = p->Copy (); // give upper layers a rw copy of the packet
@@ -302,6 +307,8 @@
   catch (CcnxUnknownHeaderException)
     {
       NS_ASSERT_MSG (false, "Unknown CCNx header. Should not happen");
+      NS_LOG_ERROR ("Unknown CCNx header. Should not happen");
+      return;
     }
 }
 
@@ -483,7 +490,7 @@
       NS_ASSERT (contentObjectHeader != 0);      
       NS_LOG_LOGIC("Found in cache");
 
-      OnDataDelayed (contentObjectHeader, contentObject, payload);
+      OnDataDelayed (contentObjectHeader, payload, contentObject);
       return;
     }
 
@@ -525,7 +532,7 @@
   bool propagated = m_forwardingStrategy->
     PropagateInterest (pitEntry, incomingFace, header, packet);
 
-  if (isRetransmitted) //give another chance if retransmitted
+  if (!propagated && isRetransmitted) //give another chance if retransmitted
     {
       // increase max number of allowed retransmissions
       m_pit->modify (m_pit->iterator_to (pitEntry),
