diff --git a/am/latex b/am/latex
index fd16c05c0bef3a068d5c171a3678301108240933..808795e3b293ad1baa2aed36ac3183977c76d907 100644
--- a/am/latex
+++ b/am/latex
@@ -5,18 +5,18 @@
 
 # rerun TEX if log-file suggests that
 .tex.dvi:
-	set -e; \
-	pushd $(srcdir); $(TEX) -output-directory=$(builddir) </dev/null $*; popd; \
-	while grep Rerun $(builddir)/$*.log > /dev/null ; do \
-	  pushd $(srcdir); $(TEX) -output-directory=$(builddir) </dev/null $*; popd; \
+	set -e; builddir=$$PWD; \
+	pushd $(srcdir); $(TEX) -output-directory=$$builddir </dev/null $*; popd; \
+	while grep Rerun $*.log > /dev/null ; do \
+	  pushd $(srcdir); $(TEX) -output-directory=$$builddir </dev/null $*; popd; \
 	done; \
-	if grep '^\\bibdata{' $(builddir)/*.aux > /dev/null \
-	   && grep '^\\citation{' $(builddir)/*.aux > /dev/null; \
+	if grep '^\\bibdata{' *.aux > /dev/null \
+	   && grep '^\\citation{' *.aux > /dev/null; \
 	then \
 	  BSTINPUTS=.:$(srcdir):${BSTINPUTS}: BIBINPUTS=.:$(srcdir):${BIBINPUTS}: $(BIBTEX) $* || exit $$?; \
-	  pushd $(srcdir); $(TEX) -output-directory=$(builddir) </dev/null $*; popd; \
-	  while grep Rerun $(builddir)/$*.log > /dev/null ; do \
-	    pushd $(srcdir); $(TEX) -output-directory=$(builddir) </dev/null $*; popd; \
+	  pushd $(srcdir); $(TEX) -output-directory=$$builddir </dev/null $*; popd; \
+	  while grep Rerun $*.log > /dev/null ; do \
+	    pushd $(srcdir); $(TEX) -output-directory=$$builddir </dev/null $*; popd; \
 	  done ; \
 	fi