diff --git a/fixincludes/ChangeLog b/fixincludes/ChangeLog
index 728a24dd8e98582a87fb2dd04cb09cc8a77aaeba..6922cd6cd7e4fc12f49bcd59b1c0ce9f8ea2d625 100644
--- a/fixincludes/ChangeLog
+++ b/fixincludes/ChangeLog
@@ -1,3 +1,11 @@
+2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
+
+	* inclhack.def (hpux8_bogus_inlines): Bypass on __GNUG__.
+	(int_abort_free_and_exit, sun_malloc, sysv68_string): Bypass on
+	_CLASSIC_ANSI_TYPES.
+	(sun_auth_proto): Bypass on __cplusplus.
+	* fixincl.x: Regenerate.
+
 2004-11-05  Geoffrey Keating  <geoffk@apple.com>
 
 	* Makefile.in (mostlyclean): Add fixinc.sh.
diff --git a/fixincludes/fixincl.x b/fixincludes/fixincl.x
index 9e6c3868e6ccc1f7fa9ada959c06a68f2e32fd2f..95206e36c090b83b1b3aefb7cc26721512b6f48c 100644
--- a/fixincludes/fixincl.x
+++ b/fixincludes/fixincl.x
@@ -2,11 +2,11 @@
  * 
  * DO NOT EDIT THIS FILE   (fixincl.x)
  * 
- * It has been AutoGen-ed  Friday October 29, 2004 at 02:26:49 PM PDT
+ * It has been AutoGen-ed  Tuesday November  9, 2004 at 11:12:40 PM UTC
  * From the definitions    inclhack.def
  * and the template file   fixincl
  */
-/* DO NOT CVS-MERGE THIS FILE, EITHER Fri Oct 29 14:26:49 PDT 2004
+/* DO NOT CVS-MERGE THIS FILE, EITHER Tue Nov  9 23:12:40 UTC 2004
  *
  * You must regenerate it.  Use the ./genfixes script.
  *
@@ -2547,8 +2547,15 @@ tSCC zHpux8_Bogus_InlinesList[] =
 tSCC zHpux8_Bogus_InlinesSelect0[] =
        "inline";
 
-#define    HPUX8_BOGUS_INLINES_TEST_CT  1
+/*
+ *  content bypass pattern - skip fix if pattern found
+ */
+tSCC zHpux8_Bogus_InlinesBypass0[] =
+       "__GNUG__";
+
+#define    HPUX8_BOGUS_INLINES_TEST_CT  2
 static tTestDesc aHpux8_Bogus_InlinesTests[] = {
+  { TT_NEGREP,   zHpux8_Bogus_InlinesBypass0, (regex_t*)NULL },
   { TT_EGREP,    zHpux8_Bogus_InlinesSelect0, (regex_t*)NULL }, };
 
 /*
@@ -2748,8 +2755,15 @@ tSCC zInt_Abort_Free_And_ExitList[] =
 tSCC zInt_Abort_Free_And_ExitSelect0[] =
        "int[ \t]+(abort|free|exit)[ \t]*\\(";
 
-#define    INT_ABORT_FREE_AND_EXIT_TEST_CT  1
+/*
+ *  content bypass pattern - skip fix if pattern found
+ */
+tSCC zInt_Abort_Free_And_ExitBypass0[] =
+       "_CLASSIC_ANSI_TYPES";
+
+#define    INT_ABORT_FREE_AND_EXIT_TEST_CT  2
 static tTestDesc aInt_Abort_Free_And_ExitTests[] = {
+  { TT_NEGREP,   zInt_Abort_Free_And_ExitBypass0, (regex_t*)NULL },
   { TT_EGREP,    zInt_Abort_Free_And_ExitSelect0, (regex_t*)NULL }, };
 
 /*
@@ -5238,8 +5252,15 @@ tSCC zSun_Auth_ProtoList[] =
 tSCC zSun_Auth_ProtoSelect0[] =
        "\\(\\*[a-z][a-z_]*\\)\\(\\)";
 
-#define    SUN_AUTH_PROTO_TEST_CT  1
+/*
+ *  content bypass pattern - skip fix if pattern found
+ */
+tSCC zSun_Auth_ProtoBypass0[] =
+       "__cplusplus";
+
+#define    SUN_AUTH_PROTO_TEST_CT  2
 static tTestDesc aSun_Auth_ProtoTests[] = {
+  { TT_NEGREP,   zSun_Auth_ProtoBypass0, (regex_t*)NULL },
   { TT_EGREP,    zSun_Auth_ProtoSelect0, (regex_t*)NULL }, };
 
 /*
@@ -5345,8 +5366,16 @@ tSCC zSun_MallocList[] =
  *  Machine/OS name selection pattern
  */
 #define apzSun_MallocMachs (const char**)NULL
-#define SUN_MALLOC_TEST_CT  0
-#define aSun_MallocTests   (tTestDesc*)NULL
+
+/*
+ *  content bypass pattern - skip fix if pattern found
+ */
+tSCC zSun_MallocBypass0[] =
+       "_CLASSIC_ANSI_TYPES";
+
+#define    SUN_MALLOC_TEST_CT  1
+static tTestDesc aSun_MallocTests[] = {
+  { TT_NEGREP,   zSun_MallocBypass0, (regex_t*)NULL }, };
 
 /*
  *  Fix Command Arguments for Sun_Malloc
@@ -5749,8 +5778,16 @@ tSCC zSysv68_StringList[] =
  *  Machine/OS name selection pattern
  */
 #define apzSysv68_StringMachs (const char**)NULL
-#define SYSV68_STRING_TEST_CT  0
-#define aSysv68_StringTests   (tTestDesc*)NULL
+
+/*
+ *  content bypass pattern - skip fix if pattern found
+ */
+tSCC zSysv68_StringBypass0[] =
+       "_CLASSIC_ANSI_TYPES";
+
+#define    SYSV68_STRING_TEST_CT  1
+static tTestDesc aSysv68_StringTests[] = {
+  { TT_NEGREP,   zSysv68_StringBypass0, (regex_t*)NULL }, };
 
 /*
  *  Fix Command Arguments for Sysv68_String
@@ -7196,7 +7233,7 @@ static const char* apzX11_SprintfPatch[] = {
  *
  *  List of all fixes
  */
-#define REGEX_COUNT          206
+#define REGEX_COUNT          211
 #define MACH_LIST_SIZE_LIMIT 261
 #define FIX_COUNT            181
 
diff --git a/fixincludes/inclhack.def b/fixincludes/inclhack.def
index 568600cc652b4e50301b8a90f43eb28c49963cff..9dcb1234c29ce718ef6ae35686c489ea6e857e3a 100644
--- a/fixincludes/inclhack.def
+++ b/fixincludes/inclhack.def
@@ -1432,6 +1432,7 @@ fix = {
     hackname = hpux8_bogus_inlines;
     files    = math.h;
     select   = inline;
+    bypass   = "__GNUG__";
     sed = "s@inline int abs(int [a-z][a-z]*) {.*}"
            "@extern \"C\" int abs(int);@";
     sed = "s@inline double abs(double [a-z][a-z]*) {.*}@@";
@@ -1521,6 +1522,7 @@ fix = {
     hackname  = int_abort_free_and_exit;
     files     = stdlib.h;
     select    = "int[ \t]+(abort|free|exit)[ \t]*\\(";
+    bypass    = "_CLASSIC_ANSI_TYPES";
 
     c_fix     = format;
     c_fix_arg = "void\t%1(";
@@ -2912,6 +2914,7 @@ fix = {
     files    = rpc/clnt.h;
     files    = rpc/svc.h;
     files    = rpc/xdr.h;
+    bypass   = "__cplusplus";
     /*
      *  Select those files containing '(*name)()'.
      */
@@ -2970,6 +2973,7 @@ fix = {
 fix = {
     hackname = sun_malloc;
     files    = malloc.h;
+    bypass   = "_CLASSIC_ANSI_TYPES";
 
     sed   = "s/typedef[ \t]char \\*\tmalloc_t/typedef void \\*\tmalloc_t/g";
     sed   = "s/int[ \t][ \t]*free/void\tfree/g";
@@ -3473,6 +3477,7 @@ fix = {
     hackname = sysv68_string;
     files    = testing.h;
     files    = string.h;
+    bypass   = "_CLASSIC_ANSI_TYPES";
 
     sed = "s/extern[ \t]*int[ \t]*strlen();/extern unsigned int strlen();/";
     sed = "s/extern[ \t]*int[ \t]*ffs[ \t]*(long);/extern int ffs(int);/";