* isis_lsp.c (lsp_update): Remove LSP from database before updating
	  its data and put it back after. Database entry MUST contain at least
	  correct pointers to the sysid to get correct compare results.
	* isis_lsp.[ch], isis_pdu.c: Pass level to the lsp_update() function.
diff --git a/isisd/isis_pdu.c b/isisd/isis_pdu.c
index b15d455..87f3790 100644
--- a/isisd/isis_pdu.c
+++ b/isisd/isis_pdu.c
@@ -1085,7 +1085,8 @@
 	      /* 7.3.16.4 b) 1)  */
 	      if (comp == LSP_NEWER)
 		{
-		  lsp_update (lsp, hdr, circuit->rcv_stream, circuit->area);
+		  lsp_update (lsp, hdr, circuit->rcv_stream, circuit->area,
+			      level);
 		  /* ii */
 		  ISIS_FLAGS_SET_ALL (lsp->SRMflags);
 		  /* iii */
@@ -1239,7 +1240,7 @@
       else if (comp == LSP_EQUAL)
 	{
 	  ISIS_CLEAR_FLAG (lsp->SRMflags, circuit);
-	  lsp_update (lsp, hdr, circuit->rcv_stream, circuit->area);
+	  lsp_update (lsp, hdr, circuit->rcv_stream, circuit->area, level);
 	  if (circuit->circ_type != CIRCUIT_T_BROADCAST)
 	    {
 	      ISIS_SET_FLAG (lsp->SSNflags, circuit);