Index: scripts/usr/local/lib/7dtd/commands/stop.sh
===================================================================
--- scripts/usr/local/lib/7dtd/commands/stop.sh	(revision 45)
+++ scripts/usr/local/lib/7dtd/commands/stop.sh	(revision 46)
@@ -32,5 +32,5 @@
 
 		echo "Trying to gracefully shutdown..."
-		tmp=$(telnetCommand $1 shutdown)
+		tmp=$(telnetCommand $1 shutdown "0.5")
 		echo "Waiting for server to shut down..."
 	
Index: scripts/usr/local/lib/7dtd/common.sh
===================================================================
--- scripts/usr/local/lib/7dtd/common.sh	(revision 45)
+++ scripts/usr/local/lib/7dtd/common.sh	(revision 46)
@@ -151,4 +151,5 @@
 #   1: Instance name
 #   2: Command
+#   3: (Optional) Timeout in sec, defaulting to 1
 # Returns:
 #   String of telnet output
@@ -158,5 +159,17 @@
 	local TEL_PASS=$(getConfigValue $1 TelnetPassword)	
 	if [ "$TEL_ENABLED" = "true" ] && [ -n "$TEL_PASS" ]; then
-		echo -e "$TEL_PASS\n$2\nexit" | nc -q 2 127.0.0.1 $TEL_PORT
+		local TEMPFILE=$(mktemp)
+		rm -f $TEMPFILE
+		mkfifo $TEMPFILE
+		exec 3<> $TEMPFILE
+		nc 127.0.0.1 $TEL_PORT <&3 &
+		local NCPID=$!
+		printf "$TEL_PASS\n$2\n" >&3
+		sleep ${3:-1}
+		printf "exit\n" >&3
+		sleep 0.2
+		kill -9 $NCPID > /dev/null 2>&1
+		exec 3>&-
+		rm -f $TEMPFILE
 	else
 		echo "Telnet not enabled or no password set."
