diff --git a/src/initscripts/system/functions b/src/initscripts/system/functions
index e4cb30456..5a26aef45 100644
--- a/src/initscripts/system/functions
+++ b/src/initscripts/system/functions
@@ -446,6 +446,7 @@ loadproc()
 	local pidfile=""
 	local forcestart=""
 	local nicelevel=""
+	local pid
 
 # This will ensure compatibility with previous LFS Bootscripts
 	if [ -n "${PIDFILE}" ];	then
@@ -521,12 +522,19 @@ loadproc()
 		(
 			${cmd} &>/dev/null
 		) &
+		pid="$!"
 		evaluate_retval
 	else
 		${cmd}
+		pid="$!"
 		evaluate_retval # This is "Probably" not LSB compliant, but required to be compatible with older bootscripts
 	fi
 
+	# Write the pidfile
+	if [ -n "${pid}" -a -n "${pidfile}" ]; then
+		echo "${pid}" > "${pidfile}"
+	fi
+
 	return 0
 }
 
