diff --git a/src/libexpr/nixexpr.hh b/src/libexpr/nixexpr.hh
index 69a47a5adcaf8435893af290dec518e1da76dd01..674321f92400b27f924a56abdc26386964d8a810 100644
--- a/src/libexpr/nixexpr.hh
+++ b/src/libexpr/nixexpr.hh
@@ -66,6 +66,7 @@ string showPos(ATerm pos);
    function to the resulting term. */
 struct TermFun
 {
+    virtual ~TermFun() { }
     virtual ATerm operator () (ATerm e) = 0;
 };
 ATerm bottomupRewrite(TermFun & f, ATerm e);