diff --git a/src/count.hpp b/src/count.hpp
index f7b809f..51a76eb 100644
--- a/src/count.hpp
+++ b/src/count.hpp
@@ -26,6 +26,9 @@
  *  one.  In pass two, apply a second C++ relational operator
  *  to the number of properties that pass the test from pass one
  *  to a count provided by the configuration file.
+ *
+ *  If the oneshot parameter is true, then this condition won't pass
+ *  again until it fails at least once.
  */
 template <typename T>
 class CountCondition : public IndexedConditional
@@ -41,10 +44,12 @@
         CountCondition(
             const PropertyIndex& conditionIndex,
             const std::function<bool(size_t)>& _countOp,
-            const std::function<bool(T)>& _propertyOp) :
+            const std::function<bool(T)>& _propertyOp,
+            bool oneshot = false) :
             IndexedConditional(conditionIndex),
             countOp(_countOp),
-            propertyOp(_propertyOp) {}
+            propertyOp(_propertyOp),
+            oneshot(oneshot) {}
 
         bool operator()() override
         {
@@ -70,7 +75,18 @@
             // *INDENT-ON*
 
             // Now apply the count condition to the count.
-            return countOp(count);
+            auto result = countOp(count);
+
+            // If this was a oneshot and the the condition has already
+            // passed, then don't let it pass again until the condition
+            // has gone back to false.
+            if (oneshot && result && lastResult)
+            {
+                return false;
+            }
+
+            lastResult = result;
+            return result;
         }
 
     private:
@@ -78,6 +94,11 @@
         std::function<bool(size_t)> countOp;
         /** @brief The comparison to perform on each property. */
         std::function<bool(T)> propertyOp;
+        /** @brief If the condition can be allowed to pass again
+                   on subsequent checks that are also true. */
+        const bool oneshot;
+        /** @brief The result of the previous check. */
+        bool lastResult = false;
 };
 } // namespace monitoring
 } // namespace dbus
