diff --git a/pydtn/communities/base.py b/pydtn/communities/base.py
index 39afcd84a79af979b3fce759c6ecdaf6b3a53a4b..132c2ef395e7622962e862e9c913a079d4c1570f 100644
--- a/pydtn/communities/base.py
+++ b/pydtn/communities/base.py
@@ -114,7 +114,7 @@ class EpochCommunity(TickProcess):
     def get_ncf(self, x, c_y):
         ''''''
         g = self.old_graph
-        if x not in c_y or x not in g:
+        if x not in g or x in c_y:
             return 0
         return sum([
             g[x][y]['duration']
diff --git a/pydtn/routers/hcbf.py b/pydtn/routers/hcbf.py
index 01badf1427deb1614c859eea1a69f6fe69f0531d..c8af6dc99cfa11385f6ca96f8c8bb30e2f85d6d1 100644
--- a/pydtn/routers/hcbf.py
+++ b/pydtn/routers/hcbf.py
@@ -49,7 +49,9 @@ def hcbf(self, packet, state):
             return False
         # lp(max_lp) == lp(self)
 
-    elif not_local_community:
+        return False
+
+    if not_local_community:
         max_cbc = max(not_local_community, key=cbc)
         if cbc(max_cbc) > cbc(self):
             send(max_cbc, 'cbc')
@@ -58,7 +60,8 @@ def hcbf(self, packet, state):
             return False
         # cbc(max_cbc) == cbc(self)
 
-        max_ncf = max(not_local_community, key=ncf)
+    if local_community:
+        max_ncf = max(local_community, key=ncf)
         if ncf(max_ncf) > ncf(self):
             send(max_ncf, 'ncf')
             return True
@@ -66,7 +69,6 @@ def hcbf(self, packet, state):
             return False
         # ncf(max_ncf) == ncf(self)
 
-    elif local_community:
         max_ui = max(local_community, key=ui)
         if ui(max_ui) > ui(self):
             send(max_ui, 'ui_lonely')