diff --git a/bin/generate-genesis-block.sh b/bin/generate-genesis-block.sh
index a437fc2709fbb54d325305bcb3d076ea3a8ba2af..1db59967a01b95fbf4fa679dca00ad96e3b67d34 100755
--- a/bin/generate-genesis-block.sh
+++ b/bin/generate-genesis-block.sh
@@ -1,12 +1,17 @@
 #!/bin/bash
 # Robert Martin-Legene <robert@nic.ar>
 
-if [ -z "${BFAHOME}" ]; then echo "\$BFAHOME not set. Did you source bfa/bin/env ?" >&2; exit 1; fi
-source ${BFAHOME}/bin/libbfa.sh || exit 1
-
-if [ ! -d "${BFANODEDIR}" -o ! -d "${BFANODEDIR}/geth/chaindata" ]
+# Don't let us call ourselves
+if [ -n "$LOOPCONTROL_GENESISCREATE" ]
 then
-    echo "Node is not initialised. Initialising with genesis."
-    geth --cache 0 --datadir "${BFANODEDIR}" --networkid ${BFANETWORKID} init "${BFANETWORKDIR}/genesis.json"
-fi
+    export LOOPCONTROL_GENESISCREATE=1
+    if [ -z "${BFAHOME}" ]; then echo "\$BFAHOME not set. Did you source bfa/bin/env ?" >&2; exit 1; fi
+    source ${BFAHOME}/bin/libbfa.sh || exit 1
 
+    if [ ! -d "${BFANODEDIR}" -o ! -d "${BFANODEDIR}/geth/chaindata" ]
+    then
+        echo "Node is not initialised. Initialising with genesis."
+        geth --cache 0 --datadir "${BFANODEDIR}" --networkid ${BFANETWORKID} init "${BFANETWORKDIR}/genesis.json"
+    fi
+fi
+unset LOOPCONTROL_GENESISCREATE