diff --git a/isisd/isis_circuit.c b/isisd/isis_circuit.c
index aa30fcd..b830794 100644
--- a/isisd/isis_circuit.c
+++ b/isisd/isis_circuit.c
@@ -1225,8 +1225,10 @@
 struct isis_circuit *
 isis_circuit_create (struct isis_area *area, struct interface *ifp)
 {
-  struct isis_circuit *circuit;
-  circuit = isis_csm_state_change (ISIS_ENABLE, NULL, area);
+  struct isis_circuit *circuit = circuit_scan_by_ifp (ifp);
+  if (circuit && circuit->area)
+    return NULL;
+  circuit = isis_csm_state_change (ISIS_ENABLE, circuit, area);
   assert (circuit->state == C_STATE_CONF || circuit->state == C_STATE_UP);
   isis_circuit_if_bind (circuit, ifp);
   return circuit;
diff --git a/isisd/isis_vty.c b/isisd/isis_vty.c
index 3f21856..3ce06b8 100644
--- a/isisd/isis_vty.c
+++ b/isisd/isis_vty.c
@@ -72,17 +72,13 @@
 
   /* Prevent more than one area per circuit */
   circuit = circuit_scan_by_ifp (ifp);
-  if (circuit)
+  if (circuit && circuit->area)
     {
-      if (circuit->ip_router == 1)
+      if (strcmp (circuit->area->area_tag, area_tag))
         {
-          if (strcmp (circuit->area->area_tag, area_tag))
-            {
-              vty_out (vty, "ISIS circuit is already defined on %s%s",
-                       circuit->area->area_tag, VTY_NEWLINE);
-              return CMD_ERR_NOTHING_TODO;
-            }
-          return CMD_SUCCESS;
+          vty_out (vty, "ISIS circuit is already defined on %s%s",
+                   circuit->area->area_tag, VTY_NEWLINE);
+          return CMD_ERR_NOTHING_TODO;
         }
     }
 
@@ -90,7 +86,7 @@
   if (!area)
     area = isis_area_create (area_tag);
 
-  if (!circuit)
+  if (!circuit || !circuit->area)
     circuit = isis_circuit_create (area, ifp);
 
   bool ip = circuit->ip_router, ipv6 = circuit->ipv6_router;
