diff --git a/changes/bug22245 b/changes/bug22245
new file mode 100644
index 0000000000000000000000000000000000000000..6ae18593ea4ed2500e895f30e2bab135d9f053db
--- /dev/null
+++ b/changes/bug22245
@@ -0,0 +1,5 @@
+  o Minor bugfixes (bandwidth accounting):
+    - Roll over monthly accounting at the configured hour and minute,
+      rather than always at 00:00.
+      Fixes bug 22245; bugfix on 0.0.9rc1.
+      Found by Andrey Karpov with PVS-Studio.
diff --git a/src/or/hibernate.c b/src/or/hibernate.c
index aaf5c4bdcd2989803201e6f51e702c81ac21306f..e3c80b5f145bbfa401b29b65b222ad801eb15264 100644
--- a/src/or/hibernate.c
+++ b/src/or/hibernate.c
@@ -331,7 +331,7 @@ edge_of_accounting_period_containing(time_t now, int get_end)
     case UNIT_MONTH: {
       /* If this is before the Nth, we want the Nth of last month. */
       if (tm.tm_mday < cfg_start_day ||
-          (tm.tm_mday < cfg_start_day && before)) {
+          (tm.tm_mday == cfg_start_day && before)) {
         --tm.tm_mon;
       }
       /* Otherwise, the month is correct. */