diff --git a/scripts/fuse_gmock_files.py b/scripts/fuse_gmock_files.py
index 4e892e9..fc0baf7 100755
--- a/scripts/fuse_gmock_files.py
+++ b/scripts/fuse_gmock_files.py
@@ -75,8 +75,8 @@
 import fuse_gtest_files
 gtest = fuse_gtest_files
 
-# Regex for matching '#include <gmock/...>'.
-INCLUDE_GMOCK_FILE_REGEX = re.compile(r'^\s*#\s*include\s*<(gmock/.+)>')
+# Regex for matching '#include "gmock/..."'.
+INCLUDE_GMOCK_FILE_REGEX = re.compile(r'^\s*#\s*include\s*"(gmock/.+)"')
 
 # Where to find the source seed files.
 GMOCK_H_SEED = 'include/gmock/gmock.h'
@@ -135,19 +135,19 @@
     for line in file(os.path.join(gmock_root, gmock_header_path), 'r'):
       m = INCLUDE_GMOCK_FILE_REGEX.match(line)
       if m:
-        # It's '#include <gmock/...>' - let's process it recursively.
+        # It's '#include "gmock/..."' - let's process it recursively.
         ProcessFile('include/' + m.group(1))
       else:
         m = gtest.INCLUDE_GTEST_FILE_REGEX.match(line)
         if m:
-          # It's '#include <gtest/foo.h>'.  We translate it to
-          # <gtest/gtest.h>, regardless of what foo is, since all
+          # It's '#include "gtest/foo.h"'.  We translate it to
+          # "gtest/gtest.h", regardless of what foo is, since all
           # gtest headers are fused into gtest/gtest.h.
 
           # There is no need to #include gtest.h twice.
           if not gtest.GTEST_H_SEED in processed_files:
             processed_files.add(gtest.GTEST_H_SEED)
-            output_file.write('#include <%s>\n' % (gtest.GTEST_H_OUTPUT,))
+            output_file.write('#include "%s"\n' % (gtest.GTEST_H_OUTPUT,))
         else:
           # Otherwise we copy the line unchanged to the output file.
           output_file.write(line)
@@ -174,18 +174,18 @@
     for line in file(os.path.join(gmock_root, gmock_source_file), 'r'):
       m = INCLUDE_GMOCK_FILE_REGEX.match(line)
       if m:
-        # It's '#include <gmock/foo.h>'.  We treat it as '#include
-        # <gmock/gmock.h>', as all other gmock headers are being fused
+        # It's '#include "gmock/foo.h"'.  We treat it as '#include
+        # "gmock/gmock.h"', as all other gmock headers are being fused
         # into gmock.h and cannot be #included directly.
 
-        # There is no need to #include <gmock/gmock.h> more than once.
+        # There is no need to #include "gmock/gmock.h" more than once.
         if not GMOCK_H_SEED in processed_files:
           processed_files.add(GMOCK_H_SEED)
-          output_file.write('#include <%s>\n' % (GMOCK_H_OUTPUT,))
+          output_file.write('#include "%s"\n' % (GMOCK_H_OUTPUT,))
       else:
         m = gtest.INCLUDE_GTEST_FILE_REGEX.match(line)
         if m:
-          # It's '#include <gtest/...>'.
+          # It's '#include "gtest/..."'.
           # There is no need to #include gtest.h as it has been
           # #included by gtest-all.cc.
           pass
