diff --git a/package/gluon-simple-tc/Makefile b/package/gluon-simple-tc/Makefile
index 0a5847a18d26f5f93f2a074b4c4656f9f7f030e0..98609551a9ba309f904fc6846391b4f8662f301e 100644
--- a/package/gluon-simple-tc/Makefile
+++ b/package/gluon-simple-tc/Makefile
@@ -27,13 +27,13 @@ define Build/Configure
 endef
 
 define Build/Compile
-	$(GLUON_CONFIGURE) initial.pl > $(PKG_BUILD_DIR)/initial.sh
+	$(GLUON_CONFIGURE) invariant.pl > $(PKG_BUILD_DIR)/invariant.sh
 endef
 
 define Package/gluon-simple-tc/install
 	$(CP) ./files/* $(1)/
-	$(INSTALL_DIR) $(1)/lib/gluon/upgrade/simple-tc/initial
-	$(INSTALL_BIN) $(PKG_BUILD_DIR)/initial.sh $(1)/lib/gluon/upgrade/simple-tc/initial/010-site-defaults
+	$(INSTALL_DIR) $(1)/lib/gluon/upgrade/simple-tc/invariant
+	$(INSTALL_BIN) $(PKG_BUILD_DIR)/invariant.sh $(1)/lib/gluon/upgrade/simple-tc/invariant/010-site-defaults
 endef
 
 $(eval $(call BuildPackage,gluon-simple-tc))
diff --git a/package/gluon-simple-tc/initial.pl b/package/gluon-simple-tc/invariant.pl
similarity index 64%
rename from package/gluon-simple-tc/initial.pl
rename to package/gluon-simple-tc/invariant.pl
index fdffdc8494cdde0e0cd16b225278249dffc26404..6b91a951165ebe9e05fd5d7bba2734935ca1a2ea 100644
--- a/package/gluon-simple-tc/initial.pl
+++ b/package/gluon-simple-tc/invariant.pl
@@ -1,23 +1,18 @@
 my $cfg = $CONFIG->{simple_tc};
 
-print <<'END';
-#/bin/sh
-
-uci -q batch <<EOF
-END
+print "#/bin/sh\n\n";
 
 foreach my $name (sort keys %{$cfg}) {
   my $interface = $cfg->{$name};
 
+  print "uci -q get gluon-simple-tc.$name >/dev/null || uci -q batch <<EOF\n";
   print "set gluon-simple-tc.$name=interface\n";
 
   for (qw(enabled ifname limit_egress limit_ingress)) {
     print "set gluon-simple-tc.$name.$_=$interface->{$_}\n";
   }
-}
 
-print <<END;
+  print "EOF\n\n";
+}
 
-commit gluon-simple-tc
-EOF
-END
+print "uci commit gluon-simple-tc\n";