diff --git a/lib/layer/iterate.c b/lib/layer/iterate.c
index ea85ebc2e5f3bc9d3c27d17bf6e07da730a1f6c1..7ebc90e6bbb3ac4bc5a5d1039009524156b29ed7 100644
--- a/lib/layer/iterate.c
+++ b/lib/layer/iterate.c
@@ -208,7 +208,7 @@ static int resolve_auth(knot_pkt_t *pkt, struct kr_layer_param *param)
 	/* Follow canonical name as next SNAME. */
 	if (cname != cur->sname) {
 		struct kr_query *next = kr_rplan_push(&resolve->rplan, cname,
-		                                      cur->stype, cur->sclass);
+		                                      cur->sclass, cur->stype);
 		if (next == NULL) {
 			return NS_PROC_FAIL;
 		}
diff --git a/lib/rplan.c b/lib/rplan.c
index b740663101e9c034d8e74970607c22e514aebcc1..917d04d219d0dd7fef2e6f111dd66d2474db9b4e 100644
--- a/lib/rplan.c
+++ b/lib/rplan.c
@@ -42,7 +42,7 @@ void kr_rplan_clear(struct kr_rplan *rplan)
 }
 
 struct kr_query *kr_rplan_push(struct kr_rplan *rplan, const knot_dname_t *name,
-                               uint16_t type, uint16_t cls)
+                               uint16_t cls, uint16_t type)
 {
 	struct kr_query *qry =  query_create(rplan->pool, name);
 	if (qry == NULL) {
diff --git a/lib/rplan.h b/lib/rplan.h
index 5ac1e0e1d715b5a01b722f1db9ffa19827499ba2..d7fd5eb022aeacfc6a650499f9ec8ae7e517aa70 100644
--- a/lib/rplan.h
+++ b/lib/rplan.h
@@ -40,8 +40,8 @@ struct kr_rplan {
 void kr_rplan_init(struct kr_rplan *rplan, mm_ctx_t *pool);
 void kr_rplan_clear(struct kr_rplan *rplan);
 
-struct kr_query *kr_rplan_push(struct kr_rplan *rplan, const knot_dname_t *name,
-                               uint16_t type, uint16_t cls);
+struct kr_query *kr_rplan_push(struct kr_rplan *rplan, const knot_dname_t *name, uint16_t cls,
+                               uint16_t type);
 int kr_rplan_pop(struct kr_rplan *rplan, struct kr_query *qry);
 struct kr_query *kr_rplan_next(struct kr_rplan *rplan);