diff --git a/src/docs/cmu-user/Makefile b/src/docs/cmu-user/Makefile
index 4a3e345769db5e3a5f8958b53f9821f88da63b53..25924ef08619c4c69d629091d839c47cc4bf78ce 100644
--- a/src/docs/cmu-user/Makefile
+++ b/src/docs/cmu-user/Makefile
@@ -43,7 +43,7 @@ FILES = *.tex
 .SUFFIXES: .tex .dvi .ps .ps1 .pdf .html .info
 
 
-all: cmu-user.ps
+all: cmu-user.pdf
 
 
 # Runs LaTeX once, then reruns LaTeX as many times as necessary to get
@@ -53,7 +53,7 @@ all: cmu-user.ps
 # been modified.
 %.dvi : %.tex $(FILES)
 	$(LATEX) $<
-	@while ( grep Rerun $*.log > /dev/null ); do \
+	@while ( grep -q "Rerun to get cross" $*.log > /dev/null ); do \
 	   $(LATEX) $<; \
 	done
 	if [ "$<" = "cmu-user.tex" ]; then $(MAKE) index; else $(MAKE) index-letter; fi
@@ -62,11 +62,11 @@ all: cmu-user.ps
 
 %.pdf : %.tex $(FILES)
 	$(PDFLATEX) $<
-	@while ( grep -v 'Package: rerunfilecheck' $*.log | grep Rerun > /dev/null ); do \
+	if [ "$<" = "cmu-user.tex" ]; then $(MAKE) index; else $(MAKE) index-letter; fi
+	@while ( grep 'Rerun to get cross' $*.log > /dev/null ); do \
 	   $(PDFLATEX) $<; \
+	   if [ "$<" = "cmu-user.tex" ]; then $(MAKE) index; else $(MAKE) index-letter; fi; \
 	done
-	if [ "$<" = "cmu-user.tex" ]; then $(MAKE) index; else $(MAKE) index-letter; fi
-	$(PDFLATEX) $<
 
 # the "-fix" option to hevea makes it run as many times as necessary
 # to resolve all cross-references and generate an index.