diff --git a/src/core/Macros.h b/src/core/Macros.h
index 5694e66f4f208d8f8badd48a516e996ad4fc3dcb..cdffc147b70c38df5e21adf682f8bce88c279f4e 100644
--- a/src/core/Macros.h
+++ b/src/core/Macros.h
@@ -43,12 +43,6 @@
 #  define WALBERLA_FORCE_INLINE(func) inline func
 #endif
 
-#ifndef WALBERLA_CXX_COMPILER_IS_IBM
-#define WALBERLA_OVERRIDE
-#else
-#define WALBERLA_OVERRIDE override
-#endif
-
 // macro overloading (-> https://stackoverflow.com/a/24028231)
 
 #define WALBERLA_GLUE(x, y) x y
diff --git a/src/mesa_pd/domain/BlockForestDataHandling.h b/src/mesa_pd/domain/BlockForestDataHandling.h
index 4df5a2f2c1e7174ad900a0ea910b0743e1d9c9cd..338c6a6495cc6d3ab944e0fa2f5547ae948b285d 100644
--- a/src/mesa_pd/domain/BlockForestDataHandling.h
+++ b/src/mesa_pd/domain/BlockForestDataHandling.h
@@ -70,20 +70,20 @@ public:
    BlockForestDataHandling(const std::shared_ptr<data::ParticleStorage>& ps) : ps_(ps) {}
    virtual ~BlockForestDataHandling() {}
 
-   virtual internal::ParticleDeleter* initialize( IBlock * const block ) WALBERLA_OVERRIDE;
+   virtual internal::ParticleDeleter* initialize( IBlock * const block ) override;
 
-   virtual void serialize( IBlock * const block, const BlockDataID & id, mpi::SendBuffer & buffer ) WALBERLA_OVERRIDE;
-   virtual internal::ParticleDeleter* deserialize( IBlock * const block ) WALBERLA_OVERRIDE;
-   virtual void deserialize( IBlock * const block, const BlockDataID & id, mpi::RecvBuffer & buffer ) WALBERLA_OVERRIDE;
+   virtual void serialize( IBlock * const block, const BlockDataID & id, mpi::SendBuffer & buffer ) override;
+   virtual internal::ParticleDeleter* deserialize( IBlock * const block ) override;
+   virtual void deserialize( IBlock * const block, const BlockDataID & id, mpi::RecvBuffer & buffer ) override;
 
-   virtual void serializeCoarseToFine( Block * const block, const BlockDataID & id, mpi::SendBuffer & buffer, const uint_t child ) WALBERLA_OVERRIDE;
-   virtual void serializeFineToCoarse( Block * const block, const BlockDataID & id, mpi::SendBuffer & buffer ) WALBERLA_OVERRIDE;
+   virtual void serializeCoarseToFine( Block * const block, const BlockDataID & id, mpi::SendBuffer & buffer, const uint_t child ) override;
+   virtual void serializeFineToCoarse( Block * const block, const BlockDataID & id, mpi::SendBuffer & buffer ) override;
 
-   virtual internal::ParticleDeleter* deserializeCoarseToFine( Block * const block ) WALBERLA_OVERRIDE;
-   virtual internal::ParticleDeleter* deserializeFineToCoarse( Block * const block ) WALBERLA_OVERRIDE;
+   virtual internal::ParticleDeleter* deserializeCoarseToFine( Block * const block ) override;
+   virtual internal::ParticleDeleter* deserializeFineToCoarse( Block * const block ) override;
 
-   virtual void deserializeCoarseToFine( Block * const block, const BlockDataID & id, mpi::RecvBuffer & buffer ) WALBERLA_OVERRIDE;
-   virtual void deserializeFineToCoarse( Block * const block, const BlockDataID & id, mpi::RecvBuffer & buffer, const uint_t child ) WALBERLA_OVERRIDE;
+   virtual void deserializeCoarseToFine( Block * const block, const BlockDataID & id, mpi::RecvBuffer & buffer ) override;
+   virtual void deserializeFineToCoarse( Block * const block, const BlockDataID & id, mpi::RecvBuffer & buffer, const uint_t child ) override;
 
 private:
    void deserializeImpl( IBlock * const block, const BlockDataID & id, mpi::RecvBuffer & buffer );
diff --git a/src/pe/cr/DEM.h b/src/pe/cr/DEM.h
index dcc19af292c646addf2f0eac477d3c87e5a4218f..b839a0822f7a76a3c5f2f5c72637c191fb575779 100644
--- a/src/pe/cr/DEM.h
+++ b/src/pe/cr/DEM.h
@@ -61,9 +61,9 @@ public:
 
    inline Integrator                getIntegrator()                const { return integrate_; }
    inline ContactResolver           getContactResolver()           const { return resolveContact_; }
-   virtual inline real_t            getMaximumPenetration()        const WALBERLA_OVERRIDE { return maxPenetration_; }
-   virtual inline size_t            getNumberOfContacts()          const WALBERLA_OVERRIDE { return numberOfContacts_; }
-   virtual inline size_t            getNumberOfContactsTreated()   const WALBERLA_OVERRIDE { return numberOfContactsTreated_; }
+   virtual inline real_t            getMaximumPenetration()        const override { return maxPenetration_; }
+   virtual inline size_t            getNumberOfContacts()          const override { return numberOfContacts_; }
+   virtual inline size_t            getNumberOfContactsTreated()   const override { return numberOfContactsTreated_; }
 private:
    Integrator                        integrate_;
    ContactResolver                   resolveContact_;
diff --git a/src/pe/cr/HCSITS.h b/src/pe/cr/HCSITS.h
index 67056df71da2ccc3b15a3085517e0529c951d502..93657becb7bf9e3d12c3182c9b365740723c5e70 100644
--- a/src/pe/cr/HCSITS.h
+++ b/src/pe/cr/HCSITS.h
@@ -130,9 +130,9 @@ public:
    //**Get functions*******************************************************************************
    /*!\name Get functions */
    //@{
-   virtual inline real_t            getMaximumPenetration()        const WALBERLA_OVERRIDE;
-   virtual inline size_t            getNumberOfContacts()          const WALBERLA_OVERRIDE;
-   virtual inline size_t            getNumberOfContactsTreated()   const WALBERLA_OVERRIDE;
+   virtual inline real_t            getMaximumPenetration()        const override;
+   virtual inline size_t            getNumberOfContacts()          const override;
+   virtual inline size_t            getNumberOfContactsTreated()   const override;
    inline const std::map<IBlockID::IDType, ContactCache> getContactCache() const { return blockToContactCache_; }
    inline real_t                    getSpeedLimitFactor() const;
    inline size_t                    getMaxIterations() const { return maxIterations_; }
diff --git a/src/pe/rigidbody/Squirmer.h b/src/pe/rigidbody/Squirmer.h
index 688894cff8d6f2a9622de3e00247b2f96f106e4b..5de26fbddf3f9440a22e4d3b369f21d06999510d 100644
--- a/src/pe/rigidbody/Squirmer.h
+++ b/src/pe/rigidbody/Squirmer.h
@@ -53,12 +53,12 @@ public:
    inline real_t getSquirmerVelocity() const;
    inline real_t getSquirmerBeta()     const;
 
-   inline Vec3     velFromBF       ( real_t px, real_t py, real_t pz ) const WALBERLA_OVERRIDE;
-   inline Vec3     velFromBF       ( const Vec3& rpos )                const WALBERLA_OVERRIDE;
-   inline Vec3     velFromWF       ( real_t px, real_t py, real_t pz ) const WALBERLA_OVERRIDE;
-   inline Vec3     velFromWF       ( const Vec3& gpos )                const WALBERLA_OVERRIDE;
+   inline Vec3     velFromBF       ( real_t px, real_t py, real_t pz ) const override;
+   inline Vec3     velFromBF       ( const Vec3& rpos )                const override;
+   inline Vec3     velFromWF       ( real_t px, real_t py, real_t pz ) const override;
+   inline Vec3     velFromWF       ( const Vec3& gpos )                const override;
 
-   static inline id_t getStaticTypeID() WALBERLA_OVERRIDE;
+   static inline id_t getStaticTypeID() override;
    //@}
    //**********************************************************************************************
 
@@ -80,7 +80,7 @@ protected:
 
 private:
    static id_t staticTypeID_;  //< type id of sphere, will be set by SetBodyTypeIDs
-   static void setStaticTypeID(id_t typeID) WALBERLA_OVERRIDE {staticTypeID_ = typeID;}
+   static void setStaticTypeID(id_t typeID) override {staticTypeID_ = typeID;}
 
    //** friend declaration
    /// needed to be able to set static type ids with setStaticTypeID
diff --git a/src/pe/rigidbody/StorageDataHandling.h b/src/pe/rigidbody/StorageDataHandling.h
index dd319398a9bba478d4dcdd92085ab9365041cb0e..12495a01b0b56bd80e1a26d062b9edbd9098c00c 100644
--- a/src/pe/rigidbody/StorageDataHandling.h
+++ b/src/pe/rigidbody/StorageDataHandling.h
@@ -43,29 +43,29 @@ public:
    virtual ~StorageDataHandling() {}
 
    /// must be thread-safe !
-   virtual Storage * initialize( IBlock * const block ) WALBERLA_OVERRIDE;
+   virtual Storage * initialize( IBlock * const block ) override;
 
    /// must be thread-safe !
-   virtual void serialize( IBlock * const block, const BlockDataID & id, mpi::SendBuffer & buffer ) WALBERLA_OVERRIDE;
+   virtual void serialize( IBlock * const block, const BlockDataID & id, mpi::SendBuffer & buffer ) override;
    /// must be thread-safe !
-   virtual Storage * deserialize( IBlock * const block ) WALBERLA_OVERRIDE;
+   virtual Storage * deserialize( IBlock * const block ) override;
    /// must be thread-safe !
-   virtual void deserialize( IBlock * const block, const BlockDataID & id, mpi::RecvBuffer & buffer ) WALBERLA_OVERRIDE;
+   virtual void deserialize( IBlock * const block, const BlockDataID & id, mpi::RecvBuffer & buffer ) override;
 
    /// must be thread-safe !
-   virtual void serializeCoarseToFine( Block * const block, const BlockDataID & id, mpi::SendBuffer & buffer, const uint_t child ) WALBERLA_OVERRIDE;
+   virtual void serializeCoarseToFine( Block * const block, const BlockDataID & id, mpi::SendBuffer & buffer, const uint_t child ) override;
    /// must be thread-safe !
-   virtual void serializeFineToCoarse( Block * const block, const BlockDataID & id, mpi::SendBuffer & buffer ) WALBERLA_OVERRIDE;
+   virtual void serializeFineToCoarse( Block * const block, const BlockDataID & id, mpi::SendBuffer & buffer ) override;
 
    /// must be thread-safe !
-   virtual Storage * deserializeCoarseToFine( Block * const block ) WALBERLA_OVERRIDE;
+   virtual Storage * deserializeCoarseToFine( Block * const block ) override;
    /// must be thread-safe !
-   virtual Storage * deserializeFineToCoarse( Block * const block ) WALBERLA_OVERRIDE;
+   virtual Storage * deserializeFineToCoarse( Block * const block ) override;
 
    /// must be thread-safe !
-   virtual void deserializeCoarseToFine( Block * const block, const BlockDataID & id, mpi::RecvBuffer & buffer ) WALBERLA_OVERRIDE;
+   virtual void deserializeCoarseToFine( Block * const block, const BlockDataID & id, mpi::RecvBuffer & buffer ) override;
    /// must be thread-safe !
-   virtual void deserializeFineToCoarse( Block * const block, const BlockDataID & id, mpi::RecvBuffer & buffer, const uint_t child ) WALBERLA_OVERRIDE;
+   virtual void deserializeFineToCoarse( Block * const block, const BlockDataID & id, mpi::RecvBuffer & buffer, const uint_t child ) override;
 
 private:
    void deserializeImpl( IBlock * const block, const BlockDataID & id, mpi::RecvBuffer & buffer );
diff --git a/src/pe/rigidbody/Union.h b/src/pe/rigidbody/Union.h
index 2f462877ffe5c05beb9d3e6f01268a9f693edae4..160ce1ec6b171e2d675f994b1f2fdaf023b97d93 100644
--- a/src/pe/rigidbody/Union.h
+++ b/src/pe/rigidbody/Union.h
@@ -126,18 +126,18 @@ public:
    //**Set functions*******************************************************************************
    /*!\name Set functions */
    //@{
-   virtual void setRemote( bool remote ) WALBERLA_OVERRIDE;
+   virtual void setRemote( bool remote ) override;
    //@}
    //**********************************************************************************************
 
-   virtual inline bool   hasSubBodies()      const WALBERLA_OVERRIDE { return true; }
+   virtual inline bool   hasSubBodies()      const override { return true; }
 
    //**Signal functions***************************************************************************
    /*!\name Signal functions */
    //@{
-   virtual void handleModification() WALBERLA_OVERRIDE;
-   virtual void handleTranslation() WALBERLA_OVERRIDE;
-   virtual void handleRotation() WALBERLA_OVERRIDE;
+   virtual void handleModification() override;
+   virtual void handleTranslation() override;
+   virtual void handleRotation() override;
    //@}
    //**********************************************************************************************
 
@@ -166,21 +166,21 @@ protected:
    //**Utility functions***************************************************************************
    /*!\name Utility functions */
    //@{
-   virtual void setPositionImpl       ( real_t px, real_t py, real_t pz )         WALBERLA_OVERRIDE;
-   virtual void setOrientationImpl    ( real_t r, real_t i, real_t j, real_t k )  WALBERLA_OVERRIDE;
-   virtual void translateImpl         ( real_t dx, real_t dy, real_t dz )         WALBERLA_OVERRIDE;
-   virtual void rotateImpl            ( const Quat& dq )                          WALBERLA_OVERRIDE;
-   virtual void rotateAroundOriginImpl( const Quat& dq )                          WALBERLA_OVERRIDE;
-   virtual void rotateAroundPointImpl ( const Vec3& point, const Quat& dq )       WALBERLA_OVERRIDE;
-   virtual bool containsRelPointImpl   ( real_t px, real_t py, real_t pz ) const  WALBERLA_OVERRIDE;
-   virtual bool isSurfaceRelPointImpl  ( real_t px, real_t py, real_t pz ) const  WALBERLA_OVERRIDE;
+   virtual void setPositionImpl       ( real_t px, real_t py, real_t pz )         override;
+   virtual void setOrientationImpl    ( real_t r, real_t i, real_t j, real_t k )  override;
+   virtual void translateImpl         ( real_t dx, real_t dy, real_t dz )         override;
+   virtual void rotateImpl            ( const Quat& dq )                          override;
+   virtual void rotateAroundOriginImpl( const Quat& dq )                          override;
+   virtual void rotateAroundPointImpl ( const Vec3& point, const Quat& dq )       override;
+   virtual bool containsRelPointImpl   ( real_t px, real_t py, real_t pz ) const  override;
+   virtual bool isSurfaceRelPointImpl  ( real_t px, real_t py, real_t pz ) const  override;
    //@}
    //**********************************************************************************************
 
    //**Utility functions***************************************************************************
    /*!\name Utility functions */
    //@{
-   inline virtual void calcBoundingBox() WALBERLA_OVERRIDE;  // Calculation of the axis-aligned bounding box
+   inline virtual void calcBoundingBox() override;  // Calculation of the axis-aligned bounding box
    inline         void calcCenterOfMass(); // Compute mass and center of gravity
    inline         void calcInertia();      // Calculation of the moment of inertia
    //@}