diff --git a/ospf6d/ospf6_interface.c b/ospf6d/ospf6_interface.c
index 7d54dd5..3d6ebcd 100644
--- a/ospf6d/ospf6_interface.c
+++ b/ospf6d/ospf6_interface.c
@@ -728,7 +728,18 @@
     }
 
   /* Join AllSPFRouters */
-  ospf6_sso (oi->interface->ifindex, &allspfrouters6, IPV6_JOIN_GROUP);
+  if (ospf6_sso (oi->interface->ifindex, &allspfrouters6, IPV6_JOIN_GROUP) < 0)
+    {
+      if (oi->sso_try_cnt++ < OSPF6_INTERFACE_SSO_RETRY_MAX)
+        {
+          zlog_info("Scheduling %s for sso retry, trial count: %d",
+                    oi->interface->name, oi->sso_try_cnt);
+          thread_add_timer (master, interface_up, oi,
+                            OSPF6_INTERFACE_SSO_RETRY_INT);
+        }
+      return 0;
+    }
+  oi->sso_try_cnt = 0; /* Reset on success */
 
   /* Update interface route */
   ospf6_interface_connected_route_update (oi->interface);
diff --git a/ospf6d/ospf6_interface.h b/ospf6d/ospf6_interface.h
index 220a475..dde589b 100644
--- a/ospf6d/ospf6_interface.h
+++ b/ospf6d/ospf6_interface.h
@@ -78,6 +78,9 @@
   /* Interface State */
   u_char state;
 
+  /* Interface socket setting trial counter, resets on success */
+  u_char sso_try_cnt;
+
   /* OSPF6 Interface flag */
   char flag;
 
@@ -140,7 +143,8 @@
 #define OSPF6_INTERFACE_INSTANCE_ID    0
 #define OSPF6_INTERFACE_BANDWIDTH      10000   /* Kbps */
 #define OSPF6_REFERENCE_BANDWIDTH      100000  /* Kbps */
-
+#define OSPF6_INTERFACE_SSO_RETRY_INT  1
+#define OSPF6_INTERFACE_SSO_RETRY_MAX  5
 
 
 /* Function Prototypes */
diff --git a/ospf6d/ospf6_network.c b/ospf6d/ospf6_network.c
index a773750..53d6c35 100644
--- a/ospf6d/ospf6_network.c
+++ b/ospf6d/ospf6_network.c
@@ -112,7 +112,7 @@
 }
 
 /* ospf6 set socket option */
-void
+int
 ospf6_sso (ifindex_t ifindex, struct in6_addr *group, int option)
 {
   struct ipv6_mreq mreq6;
@@ -125,8 +125,12 @@
   ret = setsockopt (ospf6_sock, IPPROTO_IPV6, option,
                     &mreq6, sizeof (mreq6));
   if (ret < 0)
-    zlog_err ("Network: setsockopt (%d) on ifindex %d failed: %s",
-              option, ifindex, safe_strerror (errno));
+    {
+      zlog_err ("Network: setsockopt (%d) on ifindex %d failed: %s",
+                option, ifindex, safe_strerror (errno));
+    }
+
+  return ret;
 }
 
 static int
diff --git a/ospf6d/ospf6_network.h b/ospf6d/ospf6_network.h
index f4b74fa..4fa2839 100644
--- a/ospf6d/ospf6_network.h
+++ b/ospf6d/ospf6_network.h
@@ -29,7 +29,7 @@
 extern struct in6_addr alldrouters6;
 
 extern int ospf6_serv_sock (void);
-extern void ospf6_sso (ifindex_t ifindex, struct in6_addr *group, int option);
+extern int ospf6_sso (ifindex_t ifindex, struct in6_addr *group, int option);
 
 extern int ospf6_sendmsg (struct in6_addr *, struct in6_addr *,
                           ifindex_t *, struct iovec *);
