diff --git a/modules/commands/cs_seen.cpp b/modules/commands/cs_seen.cpp index c3d04cf55..cbbd1c35c 100644 --- a/modules/commands/cs_seen.cpp +++ b/modules/commands/cs_seen.cpp @@ -20,6 +20,7 @@ enum TypeInfo }; struct SeenInfo; +static SeenInfo *FindInfo(const Anope::string &nick); typedef Anope::insensitive_map database_map; database_map database; @@ -58,7 +59,12 @@ struct SeenInfo : Serializable if (obj) s = anope_dynamic_static_cast(obj); else - s = new SeenInfo(); + { + /* ignore duplicate entries in the db, created by an old bug */ + s = FindInfo(data["nick"].str()); + if (!s) + s = new SeenInfo(); + } data["nick"] >> s->nick; data["vhost"] >> s->vhost;