diff --git a/package/gluon-autoupdater/Makefile b/package/gluon-autoupdater/Makefile
index 09c398dece14f76e6b40012658eafb5489325077..43d9beb903efff892c57e1c0f897243bd3dbe8d6 100644
--- a/package/gluon-autoupdater/Makefile
+++ b/package/gluon-autoupdater/Makefile
@@ -23,11 +23,13 @@ define Build/Configure
 endef
 
 define Build/Compile
+	$(GLUON_CONFIGURE) autoupdater.pl > $(PKG_BUILD_DIR)/autoupdater.sh
 endef
 
 define Package/gluon-autoupdater/install
 	$(CP) ./files/* $(1)/
-	chmod +x $(1)/usr/sbin/autoupdate
+	$(INSTALL_DIR) $(1)/lib/gluon/upgrade/autoupdater/initial
+	$(INSTALL_BIN) $(PKG_BUILD_DIR)/autoupdater.sh $(1)/lib/gluon/upgrade/autoupdater/initial/010-autoupdater
 endef
 
 $(eval $(call BuildPackage,gluon-autoupdater))
diff --git a/package/gluon-autoupdater/autoupdater.pl b/package/gluon-autoupdater/autoupdater.pl
new file mode 100644
index 0000000000000000000000000000000000000000..88bac9f6d1d8c340582c750cb53fa7e8524aea2a
--- /dev/null
+++ b/package/gluon-autoupdater/autoupdater.pl
@@ -0,0 +1,23 @@
+my $cfg = $CONFIG->{autoupdater};
+
+print <<'END';
+#/bin/sh
+
+uci -q batch <<EOF
+delete autoupdater.default
+set autoupdater.default=autoupdater
+END
+
+for (qw(enabled branch url probability good_signatures)) {
+  print 'set autoupdater.default.' . $_ . '=' . $cfg->{$_} . "\n";
+}
+
+for (@{$cfg->{pubkeys}}) {
+  print 'add_list autoupdater.default.pubkey=' . $_ . "\n";
+}
+
+print <<END;
+
+commit autoupdater
+EOF
+END
diff --git a/package/gluon-autoupdater/files/etc/config/autoupdater b/package/gluon-autoupdater/files/etc/config/autoupdater
index 9702ef2142c6f3da57c3dddc06aaf10ac690ab51..b894baf3c30950e65e918f4e20cbc40a6ada2c4a 100644
--- a/package/gluon-autoupdater/files/etc/config/autoupdater
+++ b/package/gluon-autoupdater/files/etc/config/autoupdater
@@ -1,4 +1,4 @@
-config autoupdater
+config autoupdater default
         option enabled 1
         option branch "stable"
         option url 'http://[fdef:ffc0:3dd7::8]/~freifunk/firmware/autoupdate'
diff --git a/package/gluon-autoupdater/files/usr/sbin/autoupdate b/package/gluon-autoupdater/files/usr/sbin/autoupdate
index f7a2208b0768f0308e8e1e85b741b1ab9ae1e380..93406f242bc75987dfab515e6746e3a7c7ed87e7 100755
--- a/package/gluon-autoupdater/files/usr/sbin/autoupdate
+++ b/package/gluon-autoupdater/files/usr/sbin/autoupdate
@@ -1,11 +1,11 @@
 #!/bin/sh
 
-if test $(uci get autoupdater.@autoupdater[0].enabled) != 1; then
+if test $(uci get autoupdater.default.enabled) != 1; then
   echo "autoupdater is disabled"
   exit 0
 fi
 
-PROBABILITY=$(uci get autoupdater.@autoupdater[0].probability)
+PROBABILITY=$(uci get autoupdater.default.probability)
 
 if test "a$1" != "a-f"; then
   echo | awk "END{srand();exit rand() > $PROBABILITY}"
@@ -15,10 +15,10 @@ if test "a$1" != "a-f"; then
   fi
 fi
 
-BASE=$(uci get autoupdater.@autoupdater[0].url)
-PUBKEYS=$(uci get autoupdater.@autoupdater[0].pubkey)
-GOOD_SIGNATURES=$(uci get autoupdater.@autoupdater[0].good_signatures)
-BRANCH=$(uci get autoupdater.@autoupdater[0].branch)
+BASE=$(uci get autoupdater.default.url)
+PUBKEYS=$(uci get autoupdater.default.pubkey)
+GOOD_SIGNATURES=$(uci get autoupdater.default.good_signatures)
+BRANCH=$(uci get autoupdater.default.branch)
 
 VERSION_FILE=/lib/gluon/release