diff --git a/recipes-osmocom/osmo-ggsn/files/osmo-ggsn.init b/recipes-osmocom/osmo-ggsn/files/osmo-ggsn.init
deleted file mode 100755
index 157d6dd..0000000
--- a/recipes-osmocom/osmo-ggsn/files/osmo-ggsn.init
+++ /dev/null
@@ -1,169 +0,0 @@
-#!/bin/sh
-### BEGIN INIT INFO
-# Provides:          osmo-ggsn
-# Required-Start:    $network $local_fs
-# Required-Stop:
-# Default-Start:     2 3 4 5
-# Default-Stop:      0 1 6
-# Short-Description: Osmocom GSM network-in-a-box
-# Description:       A minimal implementation of the GSM Base Station Controller,
-#                    Mobile Switching Center, Home Location regster and all other
-#                    components to run a self-contained GSM network.
-### END INIT INFO
-
-# Author: Harald Welte <laforge@gnumonks.org>
-
-# PATH should only include /usr/* if it runs after the mountnfs.sh script
-PATH=/sbin:/usr/sbin:/bin:/usr/bin
-DESC="Osmocom GGSN implementation"
-NAME=osmo-ggsn
-DAEMON=/usr/bin/ggsn
-DAEMON_ARGS=""             # Arguments to run the daemon with
-PIDFILE=/var/run/$NAME.pid
-SCRIPTNAME=/etc/init.d/$NAME
-CONFIG_FILE=/etc/ggsn.conf
-
-# Exit if the package is not installed
-[ -x $DAEMON ] || exit 0
-
-# Read configuration variable file if it is present
-[ -r /etc/default/$NAME ] && . /etc/default/$NAME
-
-# Load the VERBOSE setting and other rcS variables
-# . /lib/init/vars.sh
-
-# Define LSB log_* functions.
-# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
-# . /lib/lsb/init-functions
-
-DAEMON_ARGS="$DAEMON_ARGS -c $CONFIG_FILE"
-
-#
-# Function that starts the daemon/service
-#
-do_start()
-{
-	# Return
-	#   0 if daemon has been started
-	#   1 if daemon was already running
-	#   2 if daemon could not be started
-        /sbin/modprobe tun
-	start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
-		|| return 1
-
-	# Check for runtime directory of nonvolatile data
-	if [ ! -d /var/lib/ggsn ]; then
-		mkdir /var/lib/ggsn
-	fi
-
-	# Check for GTP restart counter
-	if [ ! -f /var/lib/ggsn/gsn_restart ]; then
-		echo 0 > /var/lib/ggsn/gsn_restart
-	fi
-
-	start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
-		$DAEMON_ARGS \
-		|| return 2
-	# Add code here, if necessary, that waits for the process to be ready
-	# to handle requests from services started subsequently which depend
-	# on this one.  As a last resort, sleep for some time.
-}
-
-#
-# Function that stops the daemon/service
-#
-do_stop()
-{
-	# Return
-	#   0 if daemon has been stopped
-	#   1 if daemon was already stopped
-	#   2 if daemon could not be stopped
-	#   other if a failure occurred
-	start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
-	RETVAL="$?"
-	[ "$RETVAL" = 2 ] && return 2
-	# Wait for children to finish too if this is a daemon that forks
-	# and if the daemon is only ever run from this initscript.
-	# If the above conditions are not satisfied then add some other code
-	# that waits for the process to drop all resources that could be
-	# needed by services started subsequently.  A last resort is to
-	# sleep for some time.
-	start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
-	[ "$?" = 2 ] && return 2
-	# Many daemons don't delete their pidfiles when they exit.
-	rm -f $PIDFILE
-	return "$RETVAL"
-}
-
-#
-# Function that sends a SIGHUP to the daemon/service
-#
-do_reload() {
-	#
-	# If the daemon can reload its configuration without
-	# restarting (for example, when it is sent a SIGHUP),
-	# then implement that here.
-	#
-	start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
-	return 0
-}
-
-case "$1" in
-  start)
-    #[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC " "$NAME"
-    do_start
-    #case "$?" in
-    #		0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
-    #		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
-    #	esac
-  ;;
-  stop)
-	#[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
-	do_stop
-	#case "$?" in
-	#	0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
-	#	2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
-	#esac
-	;;
-  status)
-       status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
-       ;;
-  #reload|force-reload)
-	#
-	# If do_reload() is not implemented then leave this commented out
-	# and leave 'force-reload' as an alias for 'restart'.
-	#
-	#log_daemon_msg "Reloading $DESC" "$NAME"
-	#do_reload
-	#log_end_msg $?
-	#;;
-  restart|force-reload)
-	#
-	# If the "reload" option is implemented then remove the
-	# 'force-reload' alias
-	#
-	#log_daemon_msg "Restarting $DESC" "$NAME"
-	do_stop
-	case "$?" in
-	  0|1)
-		do_start
-		#case "$?" in
-		#	0) log_end_msg 0 ;;
-		#	1) log_end_msg 1 ;; # Old process is still running
-		#	*) log_end_msg 1 ;; # Failed to start
-		#esac
-		;;
-	  *)
-	  	# Failed to stop
-		#log_end_msg 1
-		;;
-	esac
-	;;
-  *)
-	#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
-	echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
-	exit 3
-	;;
-esac
-
-:
diff --git a/recipes-osmocom/osmo-ggsn/osmo-ggsn.inc b/recipes-osmocom/osmo-ggsn/osmo-ggsn.inc
index 49dd1ee..fe0170f 100644
--- a/recipes-osmocom/osmo-ggsn/osmo-ggsn.inc
+++ b/recipes-osmocom/osmo-ggsn/osmo-ggsn.inc
@@ -5,30 +5,24 @@
 
 DEPENDS = "libosmocore"
 
-INC_PR="r0.${META_TELEPHONY_OSMO_INC}"
+INC_PR="r1.${META_TELEPHONY_OSMO_INC}"
 
 PACKAGES =+ " libgtp libgtp-dev libgtp-staticdev osmo-sgsnemu"
 RDEPENDS_${PN} += "iptables"
 RRECOMMENDS_${PN} += "kernel-module-ipt-masquerade kernel-module-tun"
 
-inherit autotools update-rc.d pkgconfig systemd
+inherit autotools pkgconfig systemd
 
 do_install_append() {
-	install -d ${D}${sysconfdir}/init.d
 	install -d ${D}${systemd_system_unitdir}/
 	install -d ${D}/${sysconfdir}/osmocom/
 
-	install -m 0776 ${WORKDIR}/osmo-ggsn.init ${D}${sysconfdir}/init.d/osmo-ggsn
 	install -m 0644 ${S}/contrib/osmo-ggsn.service ${D}${systemd_system_unitdir}/
 	install -m 0644 ${S}/doc/examples/osmo-ggsn.cfg ${D}${sysconfdir}/osmocom/
 }
 
 SYSTEMD_SERVICE_osmo-ggsn = "osmo-ggsn.service"
 
-INITSCRIPT_PACKAGES = "osmo-ggsn"
-INITSCRIPT_NAME_osmo-ggsn = "osmo-ggsn"
-INITSCRIPT_PARAMS_osmo-ggsn = "defaults 29 29"
-
 CONFFILES_osmo-ggsn = "${sysconfdir}/osmocom/osmo-ggsn.cfg"
 
 FILES_libgtp = "${libdir}/*${SOLIBS}"
diff --git a/recipes-osmocom/osmo-ggsn/osmo-ggsn_git.bb b/recipes-osmocom/osmo-ggsn/osmo-ggsn_git.bb
index 4cc65b0..a88eb84 100644
--- a/recipes-osmocom/osmo-ggsn/osmo-ggsn_git.bb
+++ b/recipes-osmocom/osmo-ggsn/osmo-ggsn_git.bb
@@ -3,7 +3,6 @@
 S = "${WORKDIR}/git"
 SRCREV = "f5a268a96d7d3c7bcfbc530f2a0b334cf25d3e3c"
 SRC_URI = "git://git.osmocom.org/osmo-ggsn                   \
-           file://osmo-ggsn.init                             \
            file://libgtp-queue_depth_32.patch		    \
           "
 PV = "1.3.0+gitr${SRCPV}"
