diff --git a/.waf-tools/compiler-features.py b/.waf-tools/compiler-features.py
index 8fa6aa7..27aa34b 100644
--- a/.waf-tools/compiler-features.py
+++ b/.waf-tools/compiler-features.py
@@ -1,63 +1,30 @@
 # -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
 
+"""
+Copyright (c) 2014-2016,  Regents of the University of California,
+                          Arizona Board of Regents,
+                          Colorado State University,
+                          University Pierre & Marie Curie, Sorbonne University,
+                          Washington University in St. Louis,
+                          Beijing Institute of Technology,
+                          The University of Memphis.
+
+This file is part of NFD (Named Data Networking Forwarding Daemon).
+See AUTHORS.md for complete list of NFD authors and contributors.
+
+NFD is free software: you can redistribute it and/or modify it under the terms
+of the GNU General Public License as published by the Free Software Foundation,
+either version 3 of the License, or (at your option) any later version.
+
+NFD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+PURPOSE.  See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along with
+NFD, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
+"""
+
 from waflib.Configure import conf
 
-OVERRIDE = '''
-class Base
-{
-  virtual void
-  f(int a);
-};
-
-class Derived : public Base
-{
-  virtual void
-  f(int a) override;
-};
-'''
-
-@conf
-def check_override(self):
-    self.check_cxx(msg='Checking for override specifier',
-                   fragment=OVERRIDE,
-                   define_name='HAVE_CXX_OVERRIDE',
-                   features='cxx', mandatory=False)
-
-FINAL = '''
-class Base
-{
-  virtual void
-  f(int a);
-};
-
-class Derived : public Base
-{
-  virtual void
-  f(int a) final;
-};
-'''
-
-@conf
-def check_final(self):
-    self.check_cxx(msg='Checking for final specifier on method',
-                   fragment=FINAL,
-                   define_name='HAVE_CXX_FINAL',
-                   features='cxx', mandatory=False)
-
-CLASS_FINAL = '''
-class A final
-{
-};
-'''
-
-@conf
-def check_class_final(self):
-    self.check_cxx(msg='Checking for final specifier on class',
-                   fragment=CLASS_FINAL,
-                   define_name='HAVE_CXX_CLASS_FINAL',
-                   features='cxx', mandatory=False)
-
 def configure(conf):
-    conf.check_override()
-    conf.check_final()
-    conf.check_class_final()
+    pass
