diff --git a/daemon/dbus/gkd-secret-objects.c b/daemon/dbus/gkd-secret-objects.c
index 4c5b5a8..e95b390 100644
--- a/daemon/dbus/gkd-secret-objects.c
+++ b/daemon/dbus/gkd-secret-objects.c
@@ -69,6 +69,9 @@ parse_object_path (GkdSecretObjects *self, const gchar *path, gchar **collection
 
 	if (g_str_has_prefix (path, SECRET_ALIAS_PREFIX)) {
 		replace = g_hash_table_lookup (self->aliases, *collection);
+		if (!replace && *collection)
+			/* we already have collection, that's sufficient if we don't need to search for an item */
+			return TRUE;
 		g_free (*collection);
 		if (!replace) {
 			*collection = NULL;
