diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index afe17c6537f50c47571063a3be0d47b7266008b4..a2acff67f2b28b5047c9fea22db442ccc7c5c92a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2000-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+	* Makefile.in (stmp-fixproto): Acknowledge errors in fixproto.
+
+	* fixproto: If fix-header fails, exit with an error.
+
 Mon Apr 17 14:59:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
 
 	* cse.c (struct check_depdendence_data): New.
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 493d080581001ae3cd53b6462b1efb76a457e475..76d93ff3e5402596d1e09f41ccc31396dc4ce8ed 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -2316,7 +2316,7 @@ fixhdr.ready: fix-header
 # if it has already been run on the files in `include'.
 stmp-fixproto: fixhdr.ready fixproto stmp-int-hdrs
 	@echo "Various warnings and error messages from fixproto are normal"
-	-if [ -f include/fixed ] ; then true; \
+	if [ -f include/fixed ] ; then true; \
 	else \
 	  : This line works around a 'make' bug in BSDI 1.1.; \
 	  FIXPROTO_DEFINES="$(FIXPROTO_DEFINES)"; export FIXPROTO_DEFINES; \
@@ -2324,6 +2324,7 @@ stmp-fixproto: fixhdr.ready fixproto stmp-int-hdrs
 	    export mkinstalldirs; \
 	  if [ -d $(SYSTEM_HEADER_DIR) ] ; then \
 	    $(SHELL) ${srcdir}/fixproto include include $(SYSTEM_HEADER_DIR); \
+	    if [ $$? -eq 0 ] ; then true ; else exit 1 ; fi ; \
 	  else true; fi; \
 	  touch include/fixed; \
 	fi
diff --git a/gcc/fixproto b/gcc/fixproto
index 9e022113ea08c0afa884d0622305763c064acf34..c2c82552a4b54bd5921b71192b65004c5115e347 100755
--- a/gcc/fixproto
+++ b/gcc/fixproto
@@ -264,6 +264,7 @@ for code in ALL STD ; do
 	then true
 	else
 	  $FIX_HEADER $rel_source_file $abs_source_file $abs_target_file ${DEFINES} $include_path
+	  if test $? != 0 ; then exit 1 ; fi
 	  echo "${rel_source_file}" >>fixproto.list
 	fi
       done
@@ -299,6 +300,7 @@ EOF
 #endif /* __${rel_source_ident} */
 EOF
     ${FIX_HEADER} $rel_source_file tmp.h $abs_target_dir/$rel_source_file ${DEFINES} $include_path
+    if test $? != 0 ; then exit 1 ; fi
     rm tmp.h
   fi
 done