diff --git a/share/translations/keepassxc_en.ts b/share/translations/keepassxc_en.ts
index 4ca387959d..1142a592a1 100644
--- a/share/translations/keepassxc_en.ts
+++ b/share/translations/keepassxc_en.ts
@@ -9892,6 +9892,10 @@ This option is deprecated, use --set-key-file instead.
+
+ Hide expired entries
+
+
ReportsWidgetPasskeys
diff --git a/src/gui/reports/ReportsWidgetHibp.cpp b/src/gui/reports/ReportsWidgetHibp.cpp
index cc4876561b..b98e4be512 100644
--- a/src/gui/reports/ReportsWidgetHibp.cpp
+++ b/src/gui/reports/ReportsWidgetHibp.cpp
@@ -71,6 +71,7 @@ ReportsWidgetHibp::ReportsWidgetHibp(QWidget* parent)
connect(m_ui->hibpTableView, SIGNAL(doubleClicked(QModelIndex)), SLOT(emitEntryActivated(QModelIndex)));
connect(m_ui->hibpTableView, SIGNAL(customContextMenuRequested(QPoint)), SLOT(customMenuRequested(QPoint)));
connect(m_ui->showKnownBadCheckBox, SIGNAL(stateChanged(int)), this, SLOT(makeHibpTable()));
+ connect(m_ui->hideExpired, SIGNAL(stateChanged(int)), this, SLOT(makeHibpTable()));
#ifdef KPXC_FEATURE_NETWORK
connect(&m_downloader, SIGNAL(hibpResult(QString, int)), SLOT(addHibpResult(QString, int)));
connect(&m_downloader, SIGNAL(fetchFailed(QString)), SLOT(fetchFailed(QString)));
@@ -153,7 +154,7 @@ void ReportsWidgetHibp::makeHibpTable()
auto title = entry->title();
// Hide entry if excluded unless explicitly requested
- if (entry->excludeFromReports()) {
+ if (entry->excludeFromReports() || (m_ui->hideExpired->isChecked() && entry->isExpired())) {
anyExcluded = true;
if (!showExcluded) {
continue;
diff --git a/src/gui/reports/ReportsWidgetHibp.ui b/src/gui/reports/ReportsWidgetHibp.ui
index b5f0a489c6..cd7a360dff 100644
--- a/src/gui/reports/ReportsWidgetHibp.ui
+++ b/src/gui/reports/ReportsWidgetHibp.ui
@@ -174,6 +174,13 @@
Also show entries that have been excluded from reports
+
+ -
+
+
+ Hide expired entries
+
+