diff --git a/ChangeLog b/ChangeLog
index 05e1f15..635d47d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2003-12-21 Hasso Tepper <hasso@estpak.ee>
+
+	* lib/linklist.c: Revert patch [quagga-dev 227]. listnode_add_sort()
+	  function should not drop nodes in any case. But fix behavior where
+	  nodes were added to the end of list when cmp returned 0.
+	* lib/if.c: Check for duplicates before calling listnode_add_sort().
+
 2003-12-08  Greg Troxel  <gdt@fnord.ir.bbn.com>
 
 	* {lib,ospfd,ospfapi}/Makefile.am: Use pkginclude_HEADERS rather
diff --git a/lib/if.c b/lib/if.c
index db10bc0..8237b2f 100644
--- a/lib/if.c
+++ b/lib/if.c
@@ -120,7 +120,8 @@
   assert (namelen <= (INTERFACE_NAMSIZ + 1));
   strncpy (ifp->name, name, namelen);
   ifp->name[INTERFACE_NAMSIZ] = '\0';
-  listnode_add_sort (iflist, ifp);
+  if (if_lookup_by_name(ifp->name) == NULL)
+    listnode_add_sort (iflist, ifp);
   ifp->connected = list_new ();
   ifp->connected->del = (void (*) (void *)) connected_free;
 
diff --git a/lib/linklist.c b/lib/linklist.c
index 049ab0b..6fc03e1 100644
--- a/lib/linklist.c
+++ b/lib/linklist.c
@@ -87,17 +87,15 @@
   struct listnode *n;
   struct listnode *new;
 
+  new = listnode_new ();
+  new->data = val;
 
   if (list->cmp)
     {
       for (n = list->head; n; n = n->next)
 	{
-	  if ((*list->cmp) (val, n->data) == 0)
-	    return;
-	  if ((*list->cmp) (val, n->data) < 0)
+	  if ((*list->cmp) (val, n->data) <= 0)
 	    {	    
-  	      new = listnode_new ();
-  	      new->data = val;
 	      new->next = n;
 	      new->prev = n->prev;
 
@@ -112,8 +110,6 @@
 	}
     }
 
-  new = listnode_new ();
-  new->data = val;
   new->prev = list->tail;
 
   if (list->tail)
