diff -r c13332db2835 troff/tdef.h
--- a/troff/tdef.h	Mon Mar 19 22:42:11 2012 +0100
+++ b/troff/tdef.h	Tue Apr 03 22:57:27 2012 +0100
@@ -58,10 +58,10 @@
 /* the BSD goo is because SunOS sprintf doesn't return anything useful */
 
 #ifdef BSD4_2
-#define	OUT		(obufp += strlen(sprintf(obufp,
+#define	OUT		(obufp += strlen((sprintf)(obufp,
 #define	PUT		))) > obuf+BUFSIZ ? flusho() : 1
 #else
-#define	OUT		(obufp += sprintf(obufp,
+#define	OUT		(obufp += (sprintf)(obufp,
 #define	PUT		)) > obuf+BUFSIZ ? flusho() : 1
 #endif
 
@@ -69,7 +69,7 @@
 #define	oput(c)		( *obufp++ = (c), obufp > obuf+BUFSIZ ? flusho() : 1 )
 
 extern	char	errbuf[];
-#define	ERROR	sprintf(errbuf,
+#define	ERROR	(sprintf)(errbuf,
 #define	WARN	), errprint()
 #define	FATAL	), errprint(), exit(1)
 
