diff --git a/google_threads/env.h b/google_threads/env.h
index ef516cd..3addbc5 100644
--- a/google_threads/env.h
+++ b/google_threads/env.h
@@ -20,7 +20,9 @@
   struct Task {
     std::function<void()> f;
   };
-  struct EnvThread {};
+  struct EnvThread {
+    virtual ~EnvThread() = default;
+  };
   virtual ~GoogleEnvironment() = default;
   virtual EnvThread* CreateThread(std::function<void()> f) = 0;
   virtual Task CreateTask(std::function<void()> f) = 0;
@@ -35,7 +37,7 @@
     EnvThread(std::function<void()> f) : func_thread_(std::move(f)) {
       func_thread_.Start();
     };
-    ~EnvThread() { func_thread_.Join(); };
+    ~EnvThread() override { func_thread_.Join(); };
     void OnCancel() {};
 
    private:
@@ -74,7 +76,7 @@
   // Constructor must start the thread, while destructor must join it.
   struct EnvThread : public GoogleEnvironment::EnvThread {
     EnvThread(std::function<void()> f) : fiber_(std::move(f)) {};
-    ~EnvThread() { fiber_.Join(); };
+    ~EnvThread() override { fiber_.Join(); };
     void OnCancel() {};
 
    private:
