diff --git a/contrib/scripts/safe_asterisk b/contrib/scripts/safe_asterisk
index 994d2b9fe4b76ab3d4aea2d4ec18626d44ea6eea..3849e836e0161d992b3ca71ded70264de1ff6574 100644
--- a/contrib/scripts/safe_asterisk
+++ b/contrib/scripts/safe_asterisk
@@ -94,9 +94,17 @@ if [ ! -w ${DUMPDROP} ]; then
 	exit 1
 fi
 
-#launch_asterisk()
-#{
-#}
+#
+# Run scripts to set any environment variables or do any other system-specific setup needed
+#
+
+if [ -d /etc/asterisk/startup.d ]; then
+	for script in /etc/asterisk/startup.d/*.sh; do
+		if [ -x ${script} ]; then
+			source ${script}
+		fi
+	done
+fi
 
 run_asterisk()
 {
diff --git a/contrib/scripts/safe_asterisk.8 b/contrib/scripts/safe_asterisk.8
index 277fa5f8dc4e6292722327bc6c264d9c74d479c2..ebd95142abe27a56d2fa2ba3832419a55b09b7bf 100644
--- a/contrib/scripts/safe_asterisk.8
+++ b/contrib/scripts/safe_asterisk.8
@@ -40,6 +40,13 @@ safe_asterisk runs in that directory, rather than in / as usual.
 If core files were generated there, they may be 
 .RE
 
+.B /etc/asterisk/startup.d
+.RS
+Files in this directory will be 'source'd by the safe_asterisk script before
+it starts Asterisk proper, allowing them to set additional environment variables
+or run any other steps that are needed for your system.
+.RE
+
 .SH BUGS
 While showing the output on a console is useful, using screen(1) as 
 the terminal may be better.