diff --git a/isisd/isis_lsp.c b/isisd/isis_lsp.c
index 6c48dcd..7309248 100644
--- a/isisd/isis_lsp.c
+++ b/isisd/isis_lsp.c
@@ -273,7 +273,19 @@
       return LSP_EQUAL;
     }
 
-  if (ntohl (seq_num) >= ntohl (lsp->lsp_header->seq_num))
+  /*
+   * LSPs with identical checksums should only be treated as newer if:
+   * a) The current LSP has a remaining lifetime != 0 and the other LSP has a
+   *    remaining lifetime == 0. In this case, we should participate in the purge
+   *    and should not treat the current LSP with remaining lifetime == 0 as older.
+   * b) The LSP has an incorrect checksum. In this case, we need to react as given
+   *    in 7.3.16.2.
+   */
+   if (ntohl (seq_num) > ntohl (lsp->lsp_header->seq_num)
+      || (ntohl(seq_num) == ntohl(lsp->lsp_header->seq_num)
+          && (  (lsp->lsp_header->rem_lifetime != 0
+                 && rem_lifetime == 0)
+              || lsp->lsp_header->checksum != checksum)))
     {
       if (isis->debugs & DEBUG_SNP_PACKETS)
 	{
diff --git a/isisd/isis_pdu.c b/isisd/isis_pdu.c
index d2be27b..bbf0d73 100644
--- a/isisd/isis_pdu.c
+++ b/isisd/isis_pdu.c
@@ -1309,6 +1309,7 @@
   u_char lspid[ISIS_SYS_ID_LEN + 2];
   struct isis_passwd *passwd;
   uint16_t pdu_len;
+  int lsp_confusion;
 
   if (isis->debugs & DEBUG_UPDATE_PACKETS)
     {
@@ -1483,6 +1484,21 @@
 
   /* 7.3.15.1 a) 9 - OriginatingLSPBufferSize - not implemented  FIXME: do it */
 
+  /* 7.3.16.2 - If this is an LSP from another IS with identical seq_num but
+   *            wrong checksum, initiate a purge. */
+  if (lsp
+      && (lsp->lsp_header->seq_num == hdr->seq_num)
+      && (lsp->lsp_header->checksum != hdr->checksum))
+    {
+      zlog_warn("ISIS-Upd (%s): LSP %s seq 0x%08x with confused checksum received.",
+                circuit->area->area_tag, rawlspid_print(hdr->lsp_id),
+                ntohl(hdr->seq_num));
+      hdr->rem_lifetime = 0;
+      lsp_confusion = 1;
+    }
+  else
+    lsp_confusion = 0;
+
   /* 7.3.15.1 b) - If the remaining life time is 0, we perform 7.3.16.4 */
   if (hdr->rem_lifetime == 0)
     {
@@ -1505,14 +1521,20 @@
                   lsp_update (lsp, circuit->rcv_stream, circuit->area, level);
 		  /* ii */
                   lsp_set_all_srmflags (lsp);
-		  /* iii */
-		  ISIS_CLEAR_FLAG (lsp->SRMflags, circuit);
 		  /* v */
 		  ISIS_FLAGS_CLEAR_ALL (lsp->SSNflags);	/* FIXME: OTHER than c */
-		  /* iv */
-		  if (circuit->circ_type != CIRCUIT_T_BROADCAST)
-		    ISIS_SET_FLAG (lsp->SSNflags, circuit);
 
+		  /* For the case of lsp confusion, flood the purge back to its
+		   * originator so that it can react. Otherwise, don't reflood
+		   * through incoming circuit as usual */
+		  if (!lsp_confusion)
+		    {
+		      /* iii */
+		      ISIS_CLEAR_FLAG (lsp->SRMflags, circuit);
+		      /* iv */
+		      if (circuit->circ_type != CIRCUIT_T_BROADCAST)
+		        ISIS_SET_FLAG (lsp->SSNflags, circuit);
+		    }
 		}		/* 7.3.16.4 b) 2) */
 	      else if (comp == LSP_EQUAL)
 		{
