diff --git a/.waf-tools/compiler-features.py b/.waf-tools/compiler-features.py
index 502596c..1602f16 100644
--- a/.waf-tools/compiler-features.py
+++ b/.waf-tools/compiler-features.py
@@ -23,31 +23,8 @@
 @conf
 def check_std_to_string(self):
     if self.check_cxx(msg='Checking for std::to_string',
-                      fragment=STD_TO_STRING,
-                      features='cxx', mandatory=False):
+                      fragment=STD_TO_STRING, mandatory=False):
         self.define('HAVE_STD_TO_STRING', 1)
 
-VECTOR_INSERT_ERASE_CONST_ITERATOR = '''
-#include <vector>
-int
-main()
-{
-  std::vector<int> v;
-  std::vector<int>::const_iterator it = v.cbegin();
-
-  v.insert(it, 2);
-  it = v.cend() - 1;
-  v.erase(it);
-}
-'''
-
-@conf
-def check_vector_const_iterators(self):
-    if self.check_cxx(msg='Checking for std::vector::insert with const_iterator',
-                      fragment=VECTOR_INSERT_ERASE_CONST_ITERATOR,
-                      features='cxx', mandatory=False):
-        self.define('HAVE_VECTOR_INSERT_ERASE_CONST_ITERATOR', 1)
-
 def configure(conf):
     conf.check_std_to_string()
-    conf.check_vector_const_iterators()
