diff --git a/iptables/nft.c b/iptables/nft.c
index c22e6c5..9a857b9 100644
--- a/iptables/nft.c
+++ b/iptables/nft.c
@@ -2162,7 +2162,8 @@
 		ret = 0;
 		goto err;
 	}
-	nft_rule_attr_set_u64(r, NFT_RULE_ATTR_POSITION, handle);
+	if (handle > 0)
+		nft_rule_attr_set_u64(r, NFT_RULE_ATTR_POSITION, handle);
 
 	if (h->commit) {
 		nft_rule_attr_set_u32(r, NFT_RULE_ATTR_FLAGS,
@@ -2189,7 +2190,7 @@
 {
 	struct nft_rule_list *list;
 	struct nft_rule *r;
-	uint64_t handle;
+	uint64_t handle = 0;
 
 	/* If built-in chains don't exist for this table, create them */
 	if (nft_xtables_config_load(h, XTABLES_CONFIG_DEFAULT, 0) < 0)
@@ -2197,26 +2198,23 @@
 
 	nft_fn = nft_rule_insert;
 
-	list = nft_rule_list_create(h);
-	if (list == NULL)
-		goto err;
+	if (rulenum > 0) {
+		list = nft_rule_list_create(h);
+		if (list == NULL)
+			goto err;
 
-	r = nft_rule_find(list, chain, table, cs, rulenum);
-	if (r == NULL) {
-		errno = ENOENT;
-		goto err;
+		r = nft_rule_find(list, chain, table, cs, rulenum);
+		if (r == NULL) {
+			errno = ENOENT;
+			goto err;
+		}
+
+		handle = nft_rule_attr_get_u64(r, NFT_RULE_ATTR_HANDLE);
+		DEBUGP("adding after rule handle %"PRIu64"\n", handle);
+
+		nft_rule_list_destroy(list);
 	}
 
-	handle = nft_rule_attr_get_u64(r, NFT_RULE_ATTR_HANDLE);
-	DEBUGP("adding after rule handle %"PRIu64"\n", handle);
-
-	if (h->commit) {
-		nft_rule_attr_set_u32(r, NFT_RULE_ATTR_FLAGS,
-				      NFT_RULE_F_COMMIT);
-	}
-
-	nft_rule_list_destroy(list);
-
 	return nft_rule_add(h, chain, table, cs, handle, verbose);
 err:
 	nft_rule_list_destroy(list);
