diff --git a/ospfd/ChangeLog b/ospfd/ChangeLog
index cb16459..b546bbd 100644
--- a/ospfd/ChangeLog
+++ b/ospfd/ChangeLog
@@ -1,3 +1,8 @@
+2005-08-17 Hasso Tepper <hasso at quagga.net>
+
+	* ospf_vty.c: Check carefully if interface exists before trying to
+	  print info about it.
+
 2005-08-05 Hasso Tepper <hasso at quagga.net>
 
 	* ospf_zebra.c: Don't assert/stop before type == ZEBRA_ROUTE_MAX if
diff --git a/ospfd/ospf_vty.c b/ospfd/ospf_vty.c
index 179464c..0f2a0fc 100644
--- a/ospfd/ospf_vty.c
+++ b/ospfd/ospf_vty.c
@@ -6533,7 +6533,7 @@
         if (or->type == OSPF_DESTINATION_NETWORK)
           for (ALL_LIST_ELEMENTS (or->paths, pnode, pnnode, path))
             {
-              if (path->oi != NULL)
+              if (path->oi != NULL && ospf_if_exists(path->oi))
                 {
                   if (path->nexthop.s_addr == 0)
                     vty_out (vty, "%24s   directly attached to %s%s",
@@ -6583,13 +6583,16 @@
                   
                   for (ALL_LIST_ELEMENTS_RO (or->paths, pnode, path))
                     {
-                      if (path->nexthop.s_addr == 0)
-                        vty_out (vty, "%24s   directly attached to %s%s",
-                                 "", path->oi->ifp->name, VTY_NEWLINE);
-                      else
-                        vty_out (vty, "%24s   via %s, %s%s", "",
-                                 inet_ntoa (path->nexthop), path->oi->ifp->name,
-                                            VTY_NEWLINE);
+		      if (path->oi != NULL && ospf_if_exists(path->oi))
+			{
+			  if (path->nexthop.s_addr == 0)
+			    vty_out (vty, "%24s   directly attached to %s%s",
+				     "", path->oi->ifp->name, VTY_NEWLINE);
+			  else
+			    vty_out (vty, "%24s   via %s, %s%s", "",
+				     inet_ntoa (path->nexthop),
+				     path->oi->ifp->name, VTY_NEWLINE);
+			}
                     }
           }
       }
@@ -6627,7 +6630,7 @@
 
         for (ALL_LIST_ELEMENTS (er->paths, pnode, pnnode, path))
           {
-            if (path->oi != NULL)
+            if (path->oi != NULL && ospf_if_exists(path->oi))
               {
                 if (path->nexthop.s_addr == 0)
                   vty_out (vty, "%24s   directly attached to %s%s",
