diff --git a/bin/syncqt.pl b/bin/syncqt.pl
index 255503c12759ced90a56dd824494220220321c14..d1424f0c3253b3df24ad2efc8b86400f1abea040 100755
--- a/bin/syncqt.pl
+++ b/bin/syncqt.pl
@@ -1045,34 +1045,37 @@ foreach my $lib (@modules_to_sync) {
                 my $header_dir = dirname($header_path);
                 make_path($header_dir, $lib, $verbose_level);
 
-                open(HEADER, ">$header_path") || die "Could not open $header_path for writing: $!\n";
-                print HEADER "#ifndef $guard\n";
-                print HEADER "#define $guard\n";
+                my $hdrcont =
+                    "#ifndef $guard\n" .
+                    "#define $guard\n";
                 my $warning = "Header <$lib/";
                 $warning .= "private/" unless ($public_header);
                 $warning .= "$header> is deprecated. Please include <$include> instead.";
-                print HEADER "#if defined(__GNUC__)\n";
-                print HEADER "#  warning $warning\n";
-                print HEADER "#elif defined(_MSC_VER)\n";
-                print HEADER "#  pragma message (\"$warning\")\n";
-                print HEADER "#endif\n";
-                print HEADER "#include <$include>\n";
+                $hdrcont .=
+                    "#if defined(__GNUC__)\n" .
+                    "#  warning $warning\n" .
+                    "#elif defined(_MSC_VER)\n" .
+                    "#  pragma message (\"$warning\")\n" .
+                    "#endif\n" .
+                    "#include <$include>\n";
                 if ($public_header) {
-                    print HEADER "#if 0\n";
-                    print HEADER "#pragma qt_no_master_include\n";
-                    print HEADER "#endif\n";
+                    $hdrcont .=
+                        "#if 0\n" .
+                        "#pragma qt_no_master_include\n" .
+                        "#endif\n";
                 }
-                print HEADER "#endif\n";
-                close HEADER;
-
-                if ($verbose_level < 3) {
-                    my $line_prefix = ",";
-                    $line_prefix = "$lib: created deprecated header(s) {" if ($first);
-                    print "$line_prefix $header";
-                } else {
-                    print "$lib: created deprecated header $header => $include\n";
+                $hdrcont .=
+                    "#endif\n";
+                if (writeFile($header_path, $hdrcont)) {
+                    if ($verbose_level < 3) {
+                        my $line_prefix = ",";
+                        $line_prefix = "$lib: created deprecated header(s) {" if ($first);
+                        print "$line_prefix $header";
+                    } else {
+                        print "$lib: created deprecated header $header => $include\n";
+                    }
+                    $first = 0;
                 }
-                $first = 0;
             }
 
             my $addendum = fixPaths($header_path, $dir) . " ";