diff --git a/pimd/pim_sock.c b/pimd/pim_sock.c
index 00fc8ed..c908e8b 100644
--- a/pimd/pim_sock.c
+++ b/pimd/pim_sock.c
@@ -38,20 +38,11 @@
 #include "pimd.h"
 #include "pim_sock.h"
 #include "pim_str.h"
+#include "pim_igmp_join.h"
 
 /* GLOBAL VARS */
 extern struct zebra_privs_t pimd_privs;
 
-#ifndef MCAST_JOIN_SOURCE_GROUP
-#define MCAST_JOIN_SOURCE_GROUP 46
-struct group_source_req
-{
-  uint32_t gsr_interface;
-  struct sockaddr_storage gsr_group;
-  struct sockaddr_storage gsr_source;
-};
-#endif
-
 int pim_socket_raw(int protocol)
 {
   int fd;
@@ -242,24 +233,7 @@
 			   struct in_addr source_addr,
 			   const char *ifname)
 {
-  struct group_source_req req;
-  struct sockaddr_in *group_sa = (struct sockaddr_in *) &req.gsr_group;
-  struct sockaddr_in *source_sa = (struct sockaddr_in *) &req.gsr_source;
-
-  memset(group_sa, 0, sizeof(*group_sa));
-  group_sa->sin_family = AF_INET;
-  group_sa->sin_addr = group_addr;
-  group_sa->sin_port = htons(0);
-
-  memset(source_sa, 0, sizeof(*source_sa));
-  source_sa->sin_family = AF_INET;
-  source_sa->sin_addr = source_addr;
-  source_sa->sin_port = htons(0);
-
-  req.gsr_interface = ifindex;
-
-  if (setsockopt(fd, SOL_IP, MCAST_JOIN_SOURCE_GROUP,
-		 &req, sizeof(req))) {
+  if (pim_igmp_join_source(fd, ifindex, group_addr, source_addr)) {
     int e = errno;
     char group_str[100];
     char source_str[100];
