diff --git a/basice2e/run.sh b/basice2e/run.sh
index 30fba16324bf9a04173c6b0357563c7c327352b8..91dcda94f094c620a6e940e80a8f96f325c219ad 100755
--- a/basice2e/run.sh
+++ b/basice2e/run.sh
@@ -3,7 +3,6 @@
 # NOTE: This is verbose on purpose.
 
 set -e
-set -x
 
 rm -fr results || true
 rm blob* || true
@@ -77,6 +76,29 @@ runclients() {
     echo "Starting clients..."
     CTR=0
 
+    # Registration pass
+    for cid in $(seq 4 7)
+    do
+        eval NICK=\${NICK${cid}}
+        # Send a regular message
+        # NOTE: This is deliberately broken not to send -E email$cid@email.com
+        # when UDB is fixed to allow concurrent registration, put it back in.
+        CLIENTCMD="timeout 180s ../bin/client $CLIENTOPTS -f blob$cid -i $cid -d $cid -m \"Hello, $cid\""
+        eval $CLIENTCMD >> $CLIENTOUT/client$cid.out 2>&1 &
+            PIDVAL=$!
+            eval CLIENTS${CTR}=$PIDVAL
+            echo "$CLIENTCMD -- $PIDVAL"
+            CTR=$(($CTR + 1))
+    done
+
+    echo "WAITING FOR $CTR CLIENTS TO EXIT..."
+    for i in $(seq 0 $(($CTR - 1)))
+    do
+        eval echo "Waiting on \${CLIENTS${i}} ..."
+        eval wait \${CLIENTS${i}}
+    done
+
+    # Now send messages to each other
     for cid in $(seq 4 7)
     do
         # TODO: Change the recipients to send multiple messages. We can't
@@ -89,7 +111,7 @@ runclients() {
             nid=$(((($cid + 1) % 4) + 4))
             eval NICK=\${NICK${cid}}
             # Send a regular message
-            CLIENTCMD="timeout 80s ../bin/client $CLIENTOPTS -f blob$cid -i $cid -d $nid -m \"Hello, $nid\""
+            CLIENTCMD="timeout 180s ../bin/client $CLIENTOPTS -f blob$cid -i $cid -d $nid -m \"Hello, $nid\""
             eval $CLIENTCMD >> $CLIENTOUT/client$cid$nid.out 2>&1 &
             PIDVAL=$!
             eval CLIENTS${CTR}=$PIDVAL
@@ -113,6 +135,8 @@ PIDVAL=$!
 echo $PIDVAL >> results/serverpids
 echo "$UDBCMD -- $PIDVAL"
 
+sleep 10
+
 # Start a dummy client
 DUMMYCMD="../bin/client $CLIENTOPTS -i 23 -d 23 -m \"dummy\" --dummyfrequency 2 -f blobdummy"
 $DUMMYCMD >> $DUMMYOUT 2>&1 &
@@ -120,6 +144,11 @@ PIDVAL=$!
 echo $PIDVAL >> results/serverpids
 echo "$DUMMYCMD -- $PIDVAL"
 
+echo "RUNNING CLIENTS..."
+runclients
+echo "RUNNING CLIENTS (2nd time)..."
+runclients
+
 # Register two users and then do UDB search on each other
 CLIENTCMD="timeout 60s ../bin/client  $CLIENTOPTS -f blob9 -E spencer@elixxir.io -i 9 -d 9 -m \"Hi\""
 eval $CLIENTCMD >> $CLIENTOUT/client9.out 2>&1 &
@@ -128,35 +157,29 @@ echo "$CLIENTCMD -- $PIDVAL"
 wait $PIDVAL
 
 CLIENTCMD="timeout 60s ../bin/client $CLIENTOPTS -f blob18 -E bernardo@elixxir.io -i 18 -d 3 -m \"SEARCH EMAIL spencer@elixxir.io\" --keyParams 3,4,2,1.0,2"
-eval $CLIENTCMD >> $CLIENTOUT/client18.out 2>&1 &
+eval $CLIENTCMD >> $CLIENTOUT/client18.out 2>&1 || true &
 PIDVAL=$!
 echo "$CLIENTCMD -- $PIDVAL"
 wait $PIDVAL
 
 CLIENTCMD="timeout 60s ../bin/client $CLIENTOPTS -f blob9 -i 9 -d 3  -m \"SEARCH EMAIL bernardo@elixxir.io\" --keyParams 3,4,2,1.0,2"
-eval $CLIENTCMD >> $CLIENTOUT/client9.out 2>&1 &
+eval $CLIENTCMD >> $CLIENTOUT/client9.out 2>&1 || true &
 PIDVAL=$!
 echo "$CLIENTCMD -- $PIDVAL"
 wait $PIDVAL
 
 # Send multiple E2E encrypted messages between users that discovered each other
 CLIENTCMD="timeout 60s ../bin/client $CLIENTOPTS -i 18 -d 9 -f blob18 -m \"Hello, 9, with E2E Encryption\" --end2end --dummyfrequency 0.1"
-eval $CLIENTCMD >> $CLIENTOUT/client18_rekey.out 2>&1 &
+eval $CLIENTCMD >> $CLIENTOUT/client18_rekey.out 2>&1 || true &
 PIDVAL=$!
 echo "$CLIENTCMD -- $PIDVAL"
 
-sleep 2
-
 CLIENTCMD="timeout 60s ../bin/client $CLIENTOPTS -i 9 -d 18 -f blob9 -m \"Hello, 18, with E2E Encryption\" --end2end --dummyfrequency 0.1"
-eval $CLIENTCMD >> $CLIENTOUT/client9_rekey.out 2>&1 &
+eval $CLIENTCMD >> $CLIENTOUT/client9_rekey.out 2>&1 || true &
 PIDVAL=$!
 echo "$CLIENTCMD -- $PIDVAL"
 wait $PIDVAL
 
-echo "RUNNING CLIENTS..."
-runclients
-echo "RUNNING CLIENTS (2nd time)..."
-runclients
 
 # Confirm all messages and rekeys by counting with grep
 grep -ac "Sending Message to 9, Spencer" $CLIENTOUT/client18_rekey.out >> $CLIENTOUT/client18.out