diff --git a/src/bmpx8x/CMakeLists.txt b/src/bmpx8x/CMakeLists.txt
index b8834fbf..83105e9d 100644
--- a/src/bmpx8x/CMakeLists.txt
+++ b/src/bmpx8x/CMakeLists.txt
@@ -4,7 +4,7 @@ upm_mixed_module_init (NAME bmpx8x
     C_SRC bmpx8x.c
     CPP_HDR bmpx8x.hpp
     CPP_SRC bmpx8x.cxx
-    IFACE_HDR iPressure.hpp
+    IFACE_HDR iPressure.hpp iTemperature.hpp
     FTI_SRC bmpx8x_fti.c
     CPP_WRAPS_C
     REQUIRES mraa utilities-c)
diff --git a/src/bmpx8x/bmpx8x.hpp b/src/bmpx8x/bmpx8x.hpp
index 4657bb07..18a332ba 100644
--- a/src/bmpx8x/bmpx8x.hpp
+++ b/src/bmpx8x/bmpx8x.hpp
@@ -34,6 +34,7 @@
 
 #include "mraa/initio.hpp"
 #include <interfaces/iPressure.hpp>
+#include <interfaces/iTemperature.hpp>
 
 namespace upm {
 
@@ -68,7 +69,7 @@ namespace upm {
      * @snippet bmpx8x.cxx Interesting
      */
 
-    class BMPX8X : virtual public iPressure {
+    class BMPX8X : virtual public iPressure, virtual public iTemperature {
     public:
         /**
          * Instantiates a BMPX8X object
@@ -147,7 +148,7 @@ namespace upm {
          *
          * @returns The temperature in Celsius.
          */
-        float getTemperature();
+        virtual float getTemperature();
 
         /**
          * Using the supplied altitude in meters, compute the pressure