diff -Nur NetworkManager-0.6.2-orig/configure.in NetworkManager-0.6.2/configure.in
--- NetworkManager-0.6.2-orig/configure.in	2006-04-02 18:15:05.000000000 -0400
+++ NetworkManager-0.6.2/configure.in	2006-04-02 18:15:57.000000000 -0400
@@ -332,6 +332,8 @@
 initscript/Gentoo/NetworkManager
 initscript/Debian/Makefile
 initscript/Slackware/Makefile
+initscript/Slackware/rc.networkmanager
+initscript/Slackware/rc.networkmanager-dispatcher
 initscript/SUSE/Makefile
 initscript/SUSE/networkmanager
 initscript/SUSE/networkmanager-dispatcher
diff -Nur NetworkManager-0.6.2-orig/initscript/Slackware/Makefile.am NetworkManager-0.6.2/initscript/Slackware/Makefile.am
--- NetworkManager-0.6.2-orig/initscript/Slackware/Makefile.am	2006-04-02 18:15:05.000000000 -0400
+++ NetworkManager-0.6.2/initscript/Slackware/Makefile.am	2006-04-02 18:16:39.000000000 -0400
@@ -1,5 +1,5 @@
-EXTRA_DIST = rc.networkmanager
+EXTRA_DIST = rc.networkmanager rc.networkmanager-dispatcher
 
 initddir = $(sysconfdir)/rc.d
-initd_SCRIPTS = rc.networkmanager
+initd_SCRIPTS = rc.networkmanager rc.networkmanager-dispatcher
 
diff -Nur NetworkManager-0.6.2-orig/initscript/Slackware/rc.networkmanager NetworkManager-0.6.2/initscript/Slackware/rc.networkmanager
--- NetworkManager-0.6.2-orig/initscript/Slackware/rc.networkmanager	2006-04-02 18:15:05.000000000 -0400
+++ NetworkManager-0.6.2/initscript/Slackware/rc.networkmanager	1969-12-31 19:00:00.000000000 -0500
@@ -1,66 +0,0 @@
-#!/bin/sh
-#
-# NetworkManager:   NetworkManager daemon
-#
-# description:  This is a daemon for automatically switching network \
-#               connections to the best available connection. \
-#
-# processname: NetworkManager
-# pidfile: /var/run/NetworkManager.pid
-#
-# We need /sbin/ip
-[ -x /sbin/ip ] || exit 1
-
-processname=NetworkManager
-servicename=NetworkManager
-pidfile=/var/run/NetworkManager.pid
-
-RETVAL=0
-
-start()
-{
-	if [ "`pgrep dbus-daemon`" = "" ]; then
-		echo -n "D-BUS must be running to start NetworkManager"
-		exit 1
-	fi
-	if [ "`pgrep hald`" = "" ]; then
-		echo -n "HAL must be running to start NetworkManager"
-		exit 1
-	fi
- 
-	echo -n $"Starting NetworkManager daemon: "
-	$servicename
-	RETVAL=$?
-	echo
-	[ $RETVAL -eq 0 ] && echo `/sbin/pidof $processname` > $pidfile
-}
-
-stop()
-{
-	echo -n $"Stopping NetworkManager daemon: "
-
-	killall -s TERM $servicename
-	RETVAL=$?
-	echo
-	if [ $RETVAL -eq 0 ]; then
-		rm -f $pidfile
-	fi
-}
-
-# See how we were called.
-case "$1" in
-	start)
-		start
-		;;
-	stop)
-		stop
-		;;
-	restart)
-		stop
-		start
-		;;
-	*)
-		echo $"Usage: $0 {start|stop|restart}"
-		;;
-esac
-exit $RETVAL
diff -Nur NetworkManager-0.6.2-orig/initscript/Slackware/rc.networkmanager-dispatcher.in NetworkManager-0.6.2/initscript/Slackware/rc.networkmanager-dispatcher.in
--- NetworkManager-0.6.2-orig/initscript/Slackware/rc.networkmanager-dispatcher.in	1969-12-31 19:00:00.000000000 -0500
+++ NetworkManager-0.6.2/initscript/Slackware/rc.networkmanager-dispatcher.in	2006-04-02 18:17:31.000000000 -0400
@@ -0,0 +1,99 @@
+#!/bin/sh
+#
+# NetworkManagerDispatcher:   NetworkManagerDispatcher daemon
+#
+# description:  This is a daemon for automatically switching network \
+#               connections to the best available connection. \
+#
+# processname: NetworkManagerDispatcher
+# pidfile: /var/run/NetworkManagerDispatcher.pid
+#
+
+prefix=@prefix@
+exec_prefix=@prefix@
+sbindir=@sbindir@
+
+NETWORKMANAGER_BIN=${sbindir}/NetworkManagerDispatcher
+
+# Sanity checks.
+[ -x $NETWORKMANAGER_BIN ] || exit 0
+
+# We need /sbin/ip
+[ -x /sbin/ip ] || exit 0
+
+PIDFILE=/var/run/NetworkManagerDispatcher.pid
+
+nm_start()
+{
+	if [ "`pgrep dbus-daemon`" = "" ]; then
+    echo "D-BUS must be running to start NetworkManagerDispatcher"
+    return
+	fi
+  
+	if [ "`pgrep hald`" = "" ]; then
+	 echo "HAL must be running to start NetworkManagerDispatcher"
+	 return
+	fi
+ 
+  # Just in case the pidfile is still there, we may need to nuke it.
+  if [ -e "$PIDFILE" ]; then
+    rm -f $PIDFILE
+  fi
+
+  echo "Starting NetworkManagerDispatcher daemon:  $NETWORKMANAGER_BIN"
+  $NETWORKMANAGER_BIN
+}
+
+nm_status()
+{
+  local pidlist=`cat $PIDFILE 2>/dev/null`
+  if [ -z "$pidlist" ]; then
+    return 1
+  fi
+  local command=`ps -p $pidlist -o comm=`
+  if [ "$command" != 'NetworkManagerDispatcher' ]; then
+    return 1
+  fi
+}
+
+nm_stop()
+{
+  echo -en "Stopping NetworkManagerDispatcher: "
+  local pidlist=`cat $PIDFILE 2>/dev/null`
+  if [ ! -z "$pidlist" ]; then
+    kill $pidlist &>/dev/null
+    rm -f $PIDFILE &>/dev/null
+	fi
+  echo "stopped";
+}
+
+nm_restart()
+{
+  nm_stop
+  nm_start
+}
+
+case "$1" in
+'start')
+  if ( ! nm_status ); then
+    nm_start
+  else
+    echo "NetworkManagerDispatcher is already running (will not start it twice)."
+  fi
+		;;
+'stop')
+  nm_stop
+		;;
+'restart')
+  nm_restart
+		;;
+'status')
+  if ( nm_status ); then
+    echo "NetworkManagerDispatcher is currently running"
+  else
+    echo "NetworkManagerDispatcher is not running."
+  fi
+		;;
+*)
+  echo "usage $0 start|stop|status|restart"
+esac
diff -Nur NetworkManager-0.6.2-orig/initscript/Slackware/rc.networkmanager.in NetworkManager-0.6.2/initscript/Slackware/rc.networkmanager.in
--- NetworkManager-0.6.2-orig/initscript/Slackware/rc.networkmanager.in	1969-12-31 19:00:00.000000000 -0500
+++ NetworkManager-0.6.2/initscript/Slackware/rc.networkmanager.in	2006-04-02 18:17:31.000000000 -0400
@@ -0,0 +1,99 @@
+#!/bin/sh
+#
+# NetworkManager:   NetworkManager daemon
+#
+# description:  This is a daemon for automatically switching network \
+#               connections to the best available connection. \
+#
+# processname: NetworkManager
+# pidfile: /var/run/NetworkManager.pid
+#
+
+prefix=@prefix@
+exec_prefix=@prefix@
+sbindir=@sbindir@
+
+NETWORKMANAGER_BIN=${sbindir}/NetworkManager
+
+# Sanity checks.
+[ -x $NETWORKMANAGER_BIN ] || exit 0
+
+# We need /sbin/ip
+[ -x /sbin/ip ] || exit 0
+
+PIDFILE=/var/run/NetworkManager.pid
+
+nm_start()
+{
+	if [ "`pgrep dbus-daemon`" = "" ]; then
+    echo "D-BUS must be running to start NetworkManager"
+    return
+	fi
+  
+	if [ "`pgrep hald`" = "" ]; then
+	 echo "HAL must be running to start NetworkManager"
+	 return
+	fi
+ 
+  # Just in case the pidfile is still there, we may need to nuke it.
+  if [ -e "$PIDFILE" ]; then
+    rm -f $PIDFILE
+  fi
+
+  echo "Starting NetworkManager daemon:  $NETWORKMANAGER_BIN"
+  $NETWORKMANAGER_BIN
+}
+
+nm_status()
+{
+  local pidlist=`cat $PIDFILE 2>/dev/null`
+  if [ -z "$pidlist" ]; then
+    return 1
+  fi
+  local command=`ps -p $pidlist -o comm=`
+  if [ "$command" != 'NetworkManager' ]; then
+    return 1
+  fi
+}
+
+nm_stop()
+{
+  echo -en "Stopping NetworkManager: "
+  local pidlist=`cat $PIDFILE 2>/dev/null`
+  if [ ! -z "$pidlist" ]; then
+    kill $pidlist &>/dev/null
+    rm -f $PIDFILE &>/dev/null
+	fi
+  echo "stopped";
+}
+
+nm_restart()
+{
+  nm_stop
+  nm_start
+}
+
+case "$1" in
+'start')
+  if ( ! nm_status ); then
+    nm_start
+  else
+    echo "NetworkManager is already running (will not start it twice)."
+  fi
+		;;
+'stop')
+  nm_stop
+		;;
+'restart')
+  nm_restart
+		;;
+'status')
+  if ( nm_status ); then
+    echo "NetworkManager is currently running"
+  else
+    echo "NetworkManager is not running."
+  fi
+		;;
+*)
+  echo "usage $0 start|stop|status|restart"
+esac
