diff --git a/src/ExprNode.hh b/src/ExprNode.hh
index e5469ad73f8ea573144266be06bcb33b8001dc80..3d39c458277f325b59c4bb03840a216911c02d0a 100644
--- a/src/ExprNode.hh
+++ b/src/ExprNode.hh
@@ -798,9 +798,11 @@ public:
   virtual pair<int, expr_t> matchEndogenousTimesConstant() const;
 
   //! Exception thrown when matching fails
-  struct MatchFailureException
+  class MatchFailureException
   {
+  public:
     const string message;
+    MatchFailureException(string message_arg) : message(message_arg) {}
   };
 
   /* Match an expression of the form ∏ x(l)ᵏ, where x are endogenous, as used