diff --git a/.waf-tools/default-compiler-flags.py b/.waf-tools/default-compiler-flags.py
index 7a317b1..d3246e1 100644
--- a/.waf-tools/default-compiler-flags.py
+++ b/.waf-tools/default-compiler-flags.py
@@ -151,12 +151,12 @@
                               '-Wextra',
                               '-Werror',
                               '-Wcatch-value=2',
-                              # '-Wextra-semi', # prevent noisy output with Qt5
+                              #'-Wextra-semi', # Qt5
                               '-Wnon-virtual-dtor',
                               '-Wno-error=deprecated-declarations', # Bug #3795
                               '-Wno-error=maybe-uninitialized', # Bug #1615
+                              '-Wno-deprecated-copy', # Qt5
                               '-Wno-unused-parameter',
-                              '-Wno-error=deprecated-copy', # Qt5
                               ]
         flags['LINKFLAGS'] += ['-Wl,-O1']
         return flags
@@ -169,8 +169,9 @@
                               '-Wall',
                               '-Wextra',
                               '-Wcatch-value=2',
-                              '-Wextra-semi',
+                              #'-Wextra-semi', # Qt5
                               '-Wnon-virtual-dtor',
+                              '-Wno-deprecated-copy', # Qt5
                               '-Wno-unused-parameter',
                               ]
         flags['LINKFLAGS'] += ['-Wl,-O1']
@@ -180,7 +181,7 @@
     def getDebugFlags(self, conf):
         flags = super(GccFlags, self).getDebugFlags(conf)
         flags['CXXFLAGS'] += ['-fdiagnostics-color',
-                              '-Wredundant-tags',
+                              #'-Wredundant-tags', # Qt5
                               ]
         if platform.machine() == 'armv7l' and self.getCompilerVersion(conf) >= (7, 1, 0):
             flags['CXXFLAGS'] += ['-Wno-psabi'] # Bug #5106
@@ -189,7 +190,7 @@
     def getOptimizedFlags(self, conf):
         flags = super(GccFlags, self).getOptimizedFlags(conf)
         flags['CXXFLAGS'] += ['-fdiagnostics-color',
-                              '-Wredundant-tags',
+                              #'-Wredundant-tags', # Qt5
                               ]
         if platform.machine() == 'armv7l' and self.getCompilerVersion(conf) >= (7, 1, 0):
             flags['CXXFLAGS'] += ['-Wno-psabi'] # Bug #5106
@@ -225,4 +226,4 @@
                               ]
         if self.getCompilerVersion(conf) < (6, 0, 0):
             flags['CXXFLAGS'] += ['-Wno-missing-braces'] # Bug #4721
-        return flags
\ No newline at end of file
+        return flags
