*** a/vif.c	Thu Aug 22 13:21:59 2013
--- b/vif.c	Wed Aug 28 19:17:29 2013
***************
*** 89,105 ****
      for (vifi = 0, v = uvifs; vifi < MAXVIFS; ++vifi, ++v) {
  	zero_vif(v, FALSE);
      }
- 
      logit(LOG_INFO, 0, "Getting vifs from kernel");
      config_vifs_from_kernel();
      if (disable_all_by_default) {
         logit(LOG_INFO, 0, "Disabling all vifs from kernel");
  
         for (vifi = 0, v = uvifs; vifi < numvifs; ++vifi, ++v)
            v->uv_flags |= VIFF_DISABLED;
      }
-     logit(LOG_INFO, 0, "Getting vifs from %s", configfilename);
-     config_vifs_from_file();
  
      /*
       * Quit if there are fewer than two enabled vifs.
--- 89,105 ----
      for (vifi = 0, v = uvifs; vifi < MAXVIFS; ++vifi, ++v) {
  	zero_vif(v, FALSE);
      }
      logit(LOG_INFO, 0, "Getting vifs from kernel");
      config_vifs_from_kernel();
+    //call this first to read config parameters from pimd.conf
+     logit(LOG_INFO, 0, "Getting vifs from %s", configfilename);
+     config_vifs_from_file();
      if (disable_all_by_default) {
         logit(LOG_INFO, 0, "Disabling all vifs from kernel");
  
         for (vifi = 0, v = uvifs; vifi < numvifs; ++vifi, ++v)
            v->uv_flags |= VIFF_DISABLED;
      }
  
      /*
       * Quit if there are fewer than two enabled vifs.
