diff --git a/asterisk.h b/asterisk.h
index 6af34dcf3de36ecfd3ffc611a3788ed910370c80..eafb1597dc481bb479153edc805aa2e0b2382e71 100755
--- a/asterisk.h
+++ b/asterisk.h
@@ -18,6 +18,7 @@
 
 #define AST_CONFIG_DIR "/etc/asterisk"
 #define AST_SOCKET		"/var/run/asterisk.ctl"
+#define AST_PID			"/var/run/asterisk.pid"
 #define AST_MODULE_DIR "/usr/lib/asterisk/modules"
 #define AST_SPOOL_DIR  "/var/spool/asterisk"
 #define AST_VAR_DIR    "/var/lib/asterisk"
diff --git a/contrib/scripts/safe_asterisk b/contrib/scripts/safe_asterisk
index 584e854d286bed4ac2cac5c3029c5ef9ac8d4567..8b7affe1217a8dc6235f31774e7f63776484bdb0 100755
--- a/contrib/scripts/safe_asterisk
+++ b/contrib/scripts/safe_asterisk
@@ -5,7 +5,7 @@ NOTIFY=			# Who to notify about crashes
 #
 # Don't fork when running "safely"
 #
-ASTARGS="-f"
+ASTARGS=""
 if [ "$TTY" != "" ]; then
 	ASTARGS="${ASTARGS} -vvv"
 	if [ "$CONSOLE" != "no" ]; then
@@ -18,30 +18,39 @@ fi
 #
 ulimit -c unlimited
 
-while :; do 
+launch_asterisk()
+{
+}
 
-	if [ "$TTY" != "" ]; then
-		stty sane < /dev/tty${TTY}
-		asterisk ${ASTARGS} >& /dev/tty${TTY} < /dev/tty${TTY}
-	else
-		asterisk ${ASTARGS}
-	fi
-	EXITSTATUS=$?
-	#echo "Asterisk ended with exit status $EXITSTATUS"
-	if [ "$EXITSTATUS" = "0" ]; then
-		# Properly shutdown....
-		echo "Asterisk shutdown normally."
-		exit 0
-	elif [ $EXITSTATUS -gt 128 ]; then
-		let EXITSIGNAL=EXITSTATUS-128
-		echo "Asterisk exited on signal $EXITSIGNAL."
-		if [ "$NOTIFY" != "" ]; then
-			echo "Asterisk exited on signal $EXITSIGNAL.  Might want to take a peek." | \
-			mail -s "Asterisk Died" $NOTIFY
+run_asterisk()
+{
+	while :; do 
+
+		if [ "$TTY" != "" ]; then
+			stty sane < /dev/tty${TTY}
+			asterisk ${ASTARGS} >& /dev/tty${TTY} < /dev/tty${TTY}
+		else
+			asterisk ${ASTARGS}
 		fi
-	else
-		echo "Asterisk died with code $EXITSTATUS.  Aborting."
-		exit 0
-	fi
-	echo "Automatically restarting Asterisk."
-done
+		EXITSTATUS=$?
+		#echo "Asterisk ended with exit status $EXITSTATUS"
+		if [ "$EXITSTATUS" = "0" ]; then
+			# Properly shutdown....
+			echo "Asterisk shutdown normally."
+			exit 0
+		elif [ $EXITSTATUS -gt 128 ]; then
+			let EXITSIGNAL=EXITSTATUS-128
+			echo "Asterisk exited on signal $EXITSIGNAL."
+			if [ "$NOTIFY" != "" ]; then
+				echo "Asterisk exited on signal $EXITSIGNAL.  Might want to take a peek." | \
+				mail -s "Asterisk Died" $NOTIFY
+			fi
+		else
+			echo "Asterisk died with code $EXITSTATUS.  Aborting."
+			exit 0
+		fi
+		echo "Automatically restarting Asterisk."
+	done
+}
+
+run_asterisk &
diff --git a/safe_asterisk b/safe_asterisk
index 584e854d286bed4ac2cac5c3029c5ef9ac8d4567..8b7affe1217a8dc6235f31774e7f63776484bdb0 100755
--- a/safe_asterisk
+++ b/safe_asterisk
@@ -5,7 +5,7 @@ NOTIFY=			# Who to notify about crashes
 #
 # Don't fork when running "safely"
 #
-ASTARGS="-f"
+ASTARGS=""
 if [ "$TTY" != "" ]; then
 	ASTARGS="${ASTARGS} -vvv"
 	if [ "$CONSOLE" != "no" ]; then
@@ -18,30 +18,39 @@ fi
 #
 ulimit -c unlimited
 
-while :; do 
+launch_asterisk()
+{
+}
 
-	if [ "$TTY" != "" ]; then
-		stty sane < /dev/tty${TTY}
-		asterisk ${ASTARGS} >& /dev/tty${TTY} < /dev/tty${TTY}
-	else
-		asterisk ${ASTARGS}
-	fi
-	EXITSTATUS=$?
-	#echo "Asterisk ended with exit status $EXITSTATUS"
-	if [ "$EXITSTATUS" = "0" ]; then
-		# Properly shutdown....
-		echo "Asterisk shutdown normally."
-		exit 0
-	elif [ $EXITSTATUS -gt 128 ]; then
-		let EXITSIGNAL=EXITSTATUS-128
-		echo "Asterisk exited on signal $EXITSIGNAL."
-		if [ "$NOTIFY" != "" ]; then
-			echo "Asterisk exited on signal $EXITSIGNAL.  Might want to take a peek." | \
-			mail -s "Asterisk Died" $NOTIFY
+run_asterisk()
+{
+	while :; do 
+
+		if [ "$TTY" != "" ]; then
+			stty sane < /dev/tty${TTY}
+			asterisk ${ASTARGS} >& /dev/tty${TTY} < /dev/tty${TTY}
+		else
+			asterisk ${ASTARGS}
 		fi
-	else
-		echo "Asterisk died with code $EXITSTATUS.  Aborting."
-		exit 0
-	fi
-	echo "Automatically restarting Asterisk."
-done
+		EXITSTATUS=$?
+		#echo "Asterisk ended with exit status $EXITSTATUS"
+		if [ "$EXITSTATUS" = "0" ]; then
+			# Properly shutdown....
+			echo "Asterisk shutdown normally."
+			exit 0
+		elif [ $EXITSTATUS -gt 128 ]; then
+			let EXITSIGNAL=EXITSTATUS-128
+			echo "Asterisk exited on signal $EXITSIGNAL."
+			if [ "$NOTIFY" != "" ]; then
+				echo "Asterisk exited on signal $EXITSIGNAL.  Might want to take a peek." | \
+				mail -s "Asterisk Died" $NOTIFY
+			fi
+		else
+			echo "Asterisk died with code $EXITSTATUS.  Aborting."
+			exit 0
+		fi
+		echo "Automatically restarting Asterisk."
+	done
+}
+
+run_asterisk &