diff --git a/setup.sh b/setup.sh
index 61249313b1344e28e80851e533480721325e842a..1fab176a98c6220292687ba2089c0a1505c7ccb9 100755
--- a/setup.sh
+++ b/setup.sh
@@ -8,14 +8,15 @@ DATADIR=/data
 # Get or generate a unique server ID.
 get_server_id() {
     if [ ! -e ${DATADIR}/.server-id ]; then
-	echo $RANDOM > ${DATADIR}/.server-id
+	# Oops, dash has no $RANDOM.
+	shuf -i 1-65535 -n 1 > ${DATADIR}/.server-id
     fi
     cat ${DATADIR}/.server-id
 }
 
 # Configure the server, replication state is unknown yet.
 configure_server() {
-    local server_id=$(get_server_id)
+    local server_id=`get_server_id`
     echo "Server ID is ${server_id}" >&2
 
     # If /data/conf.d exists, load configuration snippets from there.