diff --git a/examples/ggsn.init b/examples/ggsn.init
deleted file mode 100644
index 7d9689a..0000000
--- a/examples/ggsn.init
+++ /dev/null
@@ -1,97 +0,0 @@
-#!/bin/sh
-#
-# ggsn          This shell script takes care of starting and stopping
-#               ggsn.
-#
-# chkconfig: - 65 35
-# description: ggsn is a Gateway GPRS Support Node.
-
-# Source function library.
-. /etc/rc.d/init.d/functions
-
-# Source networking configuration.
-. /etc/sysconfig/network
-
-if [ -f /etc/sysconfig/ggsn ]; then
-        . /etc/sysconfig/ggsn
-fi
-
-# Check that networking is up.
-[ ${NETWORKING} = "no" ] && exit 0
-
-[ -f /usr/bin/ggsn ] || exit 0
-[ -f /etc/ggsn.conf ] || exit 0
-
-RETVAL=0
-prog="ggsn"
-
-start() {
-	# Start daemons.
-	echo -n $"Starting $prog: "
-
-	# Load tun module
-	/sbin/modprobe tun >/dev/null 2>&1
-
-	# Enable routing of packets: WARNING!!!
-	# Users should enable this explicitly
-	# echo 1 > /proc/sys/net/ipv4/ip_forward
-
-	# Check for runtime directory of nonvolatile data
-	if [ ! -d  /var/lib/ggsn ]; then
-	  mkdir /var/lib/ggsn
-	fi
-
-	# Check for GTP restart counter
-	if [ ! -d  /var/lib/ggsn/gsn_restart ]; then
-	  echo 0 > /var/lib/ggsn/gsn_restart
-	fi
-
-
-	daemon /usr/bin/ggsn 
-	RETVAL=$?
-	echo
-	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/ggsn
-	return $RETVAL
-}
-
-stop() {
-	# Stop daemons.
-	echo -n $"Shutting down $prog: "
-	killproc ggsn
-	RETVAL=$?
-	echo
-	[ $RETVAL = 0 ] && rm -f /var/lock/subsys/ggsn /var/run/ggsn.pid
-	return $RETVAL
-}
-
-# See how we were called.
-case "$1" in
-  start)
-	start
-	;;
-  stop)
-	stop
-	;;
-  restart|reload)
-	stop
-	start
-	RETVAL=$?
-	;;
-  condrestart)
-	if [ -f /var/lock/subsys/ggsn ] ; then
-	    stop
-	    start
-	    RETVAL=$?
-	fi
-	;;
-  status)
-	status ggsn
-	RETVAL=$?
-	;;
-  *)
-	echo $"Usage: $0 {start|stop|restart|condrestart|status}"
-	exit 1
-esac
-
-exit $RETVAL
-
diff --git a/examples/osmo-ggsn.init b/examples/osmo-ggsn.init
new file mode 100644
index 0000000..2deb378
--- /dev/null
+++ b/examples/osmo-ggsn.init
@@ -0,0 +1,97 @@
+#!/bin/sh
+#
+# osmo-ggsn     This shell script takes care of starting and stopping
+#               osmo-ggsn.
+#
+# chkconfig: - 65 35
+# description: osmo-ggsn is a Gateway GPRS Support Node.
+
+# Source function library.
+. /etc/rc.d/init.d/functions
+
+# Source networking configuration.
+. /etc/sysconfig/network
+
+if [ -f /etc/sysconfig/osmo-ggsn ]; then
+        . /etc/sysconfig/osmo-ggsn
+fi
+
+# Check that networking is up.
+[ ${NETWORKING} = "no" ] && exit 0
+
+[ -f /usr/bin/osmo-ggsn ] || exit 0
+[ -f /etc/osmo-ggsn.cfg ] || exit 0
+
+RETVAL=0
+prog="osmo-ggsn"
+
+start() {
+	# Start daemons.
+	echo -n $"Starting $prog: "
+
+	# Load tun module
+	/sbin/modprobe tun >/dev/null 2>&1
+
+	# Enable routing of packets: WARNING!!!
+	# Users should enable this explicitly
+	# echo 1 > /proc/sys/net/ipv4/ip_forward
+
+	# Check for runtime directory of nonvolatile data
+	if [ ! -d  /var/lib/osmo-ggsn ]; then
+	  mkdir /var/lib/osmo-ggsn
+	fi
+
+	# Check for GTP restart counter
+	if [ ! -d  /var/lib/osmo-ggsn/gsn_restart ]; then
+	  echo 0 > /var/lib/osmo-ggsn/gsn_restart
+	fi
+
+
+	daemon /usr/bin/osmo-ggsn 
+	RETVAL=$?
+	echo
+	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/osmo-ggsn
+	return $RETVAL
+}
+
+stop() {
+	# Stop daemons.
+	echo -n $"Shutting down $prog: "
+	killproc osmo-ggsn
+	RETVAL=$?
+	echo
+	[ $RETVAL = 0 ] && rm -f /var/lock/subsys/osmo-ggsn /var/run/osmo-ggsn.pid
+	return $RETVAL
+}
+
+# See how we were called.
+case "$1" in
+  start)
+	start
+	;;
+  stop)
+	stop
+	;;
+  restart|reload)
+	stop
+	start
+	RETVAL=$?
+	;;
+  condrestart)
+	if [ -f /var/lock/subsys/osmo-ggsn ] ; then
+	    stop
+	    start
+	    RETVAL=$?
+	fi
+	;;
+  status)
+	status osmo-ggsn
+	RETVAL=$?
+	;;
+  *)
+	echo $"Usage: $0 {start|stop|restart|condrestart|status}"
+	exit 1
+esac
+
+exit $RETVAL
+
