diff --git a/flowspec/tasks.py b/flowspec/tasks.py
index bca9e4eb6bafcdddca22c70176f1ea467fb31b0f..e2ce3f72601cd38772f436c3c1293aa38ff11709 100644
--- a/flowspec/tasks.py
+++ b/flowspec/tasks.py
@@ -345,7 +345,8 @@ import os
 import signal
 
 def handleSIGCHLD(signal, frame):
-  logger.info("handleSIGCHLD(): reaping childs")
+  pid = os.getpid()
+  logger.info("handleSIGCHLD(): pid="+str(pid)+" reaping childs")
   os.waitpid(-1, os.WNOHANG)
 
 def snmp_lock_create(wait=0):
@@ -376,15 +377,18 @@ def snmp_lock_remove():
       logger.error("snmp_lock_remove(): failed "+str(e))
 
 def exit_process():
-    import sys
+    #import sys
     pid = os.getpid()
-    logger.info("exit_process(): before exit in child process (pid="+str(pid)+")")
-    exit()
-    logger.info("exit_process(): before exit in child process (pid="+str(pid)+"), after exit")
-    sys.exit()
-    logger.info("exit_process(): before exit in child process (pid="+str(pid)+"), after sys.exit")
+
+    #logger.info("exit_process(): before exit() in child process (pid="+str(pid)+")")
+    #exit()
+
+    #logger.info("exit_process(): before sys.exit() in child process (pid="+str(pid)+")")
+    #sys.exit()
+
+    logger.info("exit_process(): before os._exit() in child process (pid="+str(pid)+")")
     os._exit()
-    logger.info("exit_process(): before exit in child process (pid="+str(pid)+"), after os._exit")
+    logger.info("exit_process(): before os._exit() in child process (pid="+str(pid)+")")
 
 #@shared_task(ignore_result=True, time_limit=580, soft_time_limit=550)
 @shared_task(ignore_result=True, max_retries=0)
@@ -404,21 +408,28 @@ def poll_snmp_statistics():
     elif npid > 0:
       logger.info("poll_snmp_statistics(): returning in parent process (pid="+str(pid)+", npid="+str(npid)+")")
     else:
-      logger.info("poll_snmp_statistics(): in child process (pid="+str(pid)+", npid="+str(npid)+")")
+      ppid = pid
+      pid = os.getpid()
+      logger.info("poll_snmp_statistics(): in child process (pid="+str(pid)+", ppid="+str(ppid)+")")
       try:
         snmpstats.poll_snmp_statistics()        
       except Exception as e:
-        logger.error("poll_snmp_statistics(): exception occured in snmp poll (pid="+str(pid)+", npid="+str(npid)+"): "+str(e))
+        logger.error("poll_snmp_statistics(): exception occured in snmp poll (pid="+str(pid)+", ppid="+str(ppid)+"): "+str(e))
       snmp_lock_remove()
       #exit_process()
-      logger.info("exit_process(): before exit in child process (pid="+str(pid)+", npid="+str(npid)+")")
-      exit()
-      logger.info("exit_process(): before exit in child process (pid="+str(pid)+", npid="+str(npid)+"), after exit")
-      import sys
-      sys.exit()
-      logger.info("exit_process(): before exit in child process (pid="+str(pid)+", npid="+str(npid)+"), after sys.exit")
-      os._exit()
-      logger.info("exit_process(): before exit in child process (pid="+str(pid)+", npid="+str(npid)+"), after os._exit")
+
+      # not used anymore: will lead to exit of parent process
+      #logger.info("poll_snmp_statistics(): before exit() in child process (pid="+str(pid)+", ppid="+str(ppid)+")")
+      #exit()
+
+      # not used anymore: will lead to exit of parent process
+      #logger.info("poll_snmp_statistics(): before sys.exit() in child process (pid="+str(pid)+", ppid="+str(ppid)+")")
+      #import sys
+      #sys.exit()
+
+      logger.info("poll_snmp_statistics(): before os._exit() in child process (pid="+str(pid)+", ppid="+str(ppid)+")")
+      os._exit(0)
+      logger.info("poll_snmp_statistics(): after os._exit() in child process (pid="+str(pid)+", ppid="+str(ppid)+")")
 
 @shared_task(ignore_result=True, max_retries=0)
 def snmp_add_initial_zero_value(rule_id, zero_or_null=True):
@@ -439,7 +450,9 @@ def snmp_add_initial_zero_value(rule_id, zero_or_null=True):
       elif npid > 0:
         logger.info("snmp_add_initial_zero_value(): returning in parent process (pid="+str(pid)+", npid="+str(npid)+")")
       else:
-        logger.info("snmp_add_initial_zero_value(): in child process (pid="+str(pid)+", npid="+str(npid)+")")
+        ppid = pid
+        pid = os.getpid()
+        logger.info("snmp_add_initial_zero_value(): in child process (pid="+str(pid)+", ppid="+str(ppid)+")")
 
         try:
           snmpstats.add_initial_zero_value(rule_id, zero_or_null)
@@ -448,14 +461,18 @@ def snmp_add_initial_zero_value(rule_id, zero_or_null=True):
           logger.error("snmp_add_initial_zero_value(): rule_id="+str(rule_id)+","+str(zero_or_null)+" failed: "+str(e))
 
         #exit_process()
-        logger.info("exit_process(): before exit in child process (pid="+str(pid)+", npid="+str(npid)+")")
-        exit()
-        logger.info("exit_process(): before exit in child process (pid="+str(pid)+", npid="+str(npid)+"), after exit")
-        sys.exit()
-        logger.info("exit_process(): before exit in child process (pid="+str(pid)+", npid="+str(npid)+"), after sys.exit")
-        os._exit()
-        logger.info("exit_process(): before exit in child process (pid="+str(pid)+", npid="+str(npid)+"), after os._exit")
 
+        # not used anymore: will lead to exit of parent process
+        #logger.info("snmp_add_initial_zero_value(): before exit() in child process (pid="+str(pid)+", ppid="+str(ppid)+")")
+        #exit()
+
+        # not used anymore: will lead to exit of parent process
+        #logger.info("snmp_add_initial_zero_value(): before sys.exit() in child process (pid="+str(pid)+", ppid="+str(ppid)+")")
+        #sys.exit()
+
+        logger.info("snmp_add_initial_zero_value(): before os._exit() in child process (pid="+str(pid)+", ppid="+str(ppid)+")")
+        os._exit(0)
+        logger.info("snmp_add_initial_zero_value(): after os._exit() in child process (pid="+str(pid)+", ppid="+str(ppid)+")")
 
 @pytest.mark.skip
 @shared_task(ignore_result=True,default_retry_delay=5,max_retries=2,autoretry_for=(TimeoutError,))
diff --git a/flowspy/settings.py.dist b/flowspy/settings.py.dist
index 8f9f5144f0b434f4240d6724c2c63cad691b6008..60d9784f97bcaefbedd0f142d9f892d193c5a6db 100644
--- a/flowspy/settings.py.dist
+++ b/flowspy/settings.py.dist
@@ -79,6 +79,9 @@ LOG_FILE_LOCATION = "/srv/flowspy/log/"
 LOGGING_FORMAT_DEFAULT = '%(asctime)s %(name)s %(levelname)s: %(message)s'
 #LOGGING_FORMAT_DEFAULT = '%(processName)s[%(process)d] %(asctime)s %(name)s %(levelname)s: %(message)s'
 
+#CELERYD_LOG_FORMAT = LOGGING_FORMAT_DEFAULT
+#CELERYD_TASK_LOG_FORMAT = CELERYD_LOG_FORMAT
+
 # "error" | "warn" | "info" | "debug"
 LOG_LEVEL = "info"
 
@@ -645,6 +648,7 @@ ALLOW_DELETE_FULL_FOR_USER_LIST = [
 # with the same addresses). By default it is enabled (True).
 #DISABLE_RULE_OVERLAP_CHECK = False
 ROUTES_DUPLICATES_CHECKING = True
+ROUTES_DUPLICATES_CHECKING__ENFORCED_FOR_ALREADY_EXISTING_RULES = False
 
 ##############################################################################
 ##############################################################################
@@ -655,4 +659,10 @@ ENABLE_SETUP_VIEW = False
 ##############################################################################
 ##############################################################################
 
+#PROXY_CLASS="proxy_netconf_junos"
+PROXY_CLASS="proxy_exabgp"
+
+##############################################################################
+##############################################################################
+
 from flowspy.settings_local import *