diff --git a/Makefile.am b/Makefile.am
index d77e1b88334542533fb35d39c7fa54d2d9dc7dd6..5139aa2830fcebf0f7c9989b20b5ffe9cf99c598 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -20,3 +20,5 @@ doc/cdi_cman.pdf:
 #
 doc/cdi_fman.pdf: 
 	(cd $(top_srcdir)/doc/tex ; ./makepdf_f ; mv cdi_fman.pdf .. ; ./cleanup)
+
+libtool: config/ltmain.sh
diff --git a/config/ltmain.sh b/config/ltmain.sh
index 63ae69dc6fecaf83c52fba2ad334f4b1369fb1cd..cfc9c20dc770880e055beed8b875908b14002885 100644
--- a/config/ltmain.sh
+++ b/config/ltmain.sh
@@ -136,6 +136,18 @@ progpath="$0"
 
 
 : ${CP="cp -f"}
+# work around bug in libtool which raises an error when running in a
+# parallel make that should have been handled in printf internally
+printf()
+{
+  while ! builtin printf "$@" ; do
+    errcode=$?
+    # errcode might be EAGAIN=11 which means to simply try again
+    if [ $errcode != 11 ]; then
+      return $errcode
+    fi
+  done
+}
 test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
 : ${MAKE="make"}
 : ${MKDIR="mkdir"}