Index: tests/exceptions/cancel/thread.cfa
===================================================================
--- tests/exceptions/cancel/thread.cfa	(revision d00d58175bd0e1df5524a7109ec9127ccb133764)
+++ tests/exceptions/cancel/thread.cfa	(revision b388d1baad1af006ac9ea384e38dd2abb5f0ba6e)
@@ -1,4 +1,5 @@
 // Try cancelling a thread.
 
+#include <fstream.hfa>
 #include <thread.hfa>
 
@@ -13,23 +14,23 @@
 
 void main(WillCancel &) {
-	printf("1");
+	sout | '1';
 	cancel_stack((internal_error){&internal_vt});
-	printf("!");
+	sout | '!';
 }
 
 void explicit() {
 	try {
-		printf("0");
+		sout | '0';
 		WillCancel cancel;
-		printf("1");
+		sout | '1';
 		join(cancel);
-		printf("4");
+		sout | '4';
 	} catchResume (ThreadCancelled(WillCancel) * error) {
-		printf("2");
+		sout | '2';
 		if ((virtual internal_error *)error->the_exception) {
-			printf("3");
+			sout | '3';
 		}
 	}
-	printf("5\n");
+	sout | '5' | nl;
 }
 
@@ -37,19 +38,20 @@
 	try {
 		{
-			printf("0");
+			sout | '0';
 			WillCancel cancel;
-			printf("1");
+			sout | '1';
 		}
-		printf("4");
+		sout | '4';
 	} catchResume (ThreadCancelled(WillCancel) * error) {
-		printf("2");
+		sout | '2';
 		if ((virtual internal_error *)error->the_exception) {
-			printf("3");
+			sout | '3';
 		}
 	}
-	printf("5\n");
+	sout | '5' | nl;
 }
 
 int main(int argc, char * argv[]) {
+	sout | nlOff;
 	explicit();
 	implicit();
