diff --git a/session.c b/session.c
index a3d470affdc3367325399b32cc82ac17e13e5022..6f06e74afc2c1c8a2b727c3e876c89281223a13b 100644
--- a/session.c
+++ b/session.c
@@ -842,10 +842,14 @@ rpc_login_test_login(struct uci_context *uci,
 	struct uci_element *e;
 	struct uci_ptr ptr = { .package = "rpcd" };
 
-	uci_load(uci, ptr.package, &p);
+	p = uci_lookup_package(uci, ptr.package);
 
-	if (!p)
-		return false;
+	if (!p) {
+		uci_load(uci, ptr.package, &p);
+
+		if (!p)
+			return NULL;
+	}
 
 	uci_foreach_element(&p->sections, e)
 	{