Index: tests/.expect/copyfile.txt
===================================================================
--- tests/.expect/copyfile.txt	(revision 8d75345a27e4a35f5f583b4c11337696aa1faf63)
+++ tests/.expect/copyfile.txt	(revision 3f654ecdcfdb73f9b05285ff8427be103b5a03b8)
@@ -10,36 +10,37 @@
 // Created On       : Tue Jul 16 16:47:22 2019
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Jul 16 16:48:16 2019
-// Update Count     : 1
+// Last Modified On : Wed Jul 17 18:04:44 2019
+// Update Count     : 26
 // 
 
 #include <fstream.hfa>
+#include <stdlib.hfa>									// new/delete
 
 int main( int argc, char * argv[] ) {
-    ifstream & in  = stdin;				// default files
-    ofstream & out = stdout;
-    try {
-	choose ( argc ) {
-	  case 2, 3:
-	    open( in, argv[1] );			// open input file first as output creates file
-	    if ( argc == 3 ) open( out, argv[2] );	// only open output if input opens as output created if nonexistent
-	  case 1: ;					// use default files
-	  default:
-	    exit | "Usage [ input-file (default stdin) [ output-file (default stdout) ] ]";
-	} // choose
+	ifstream * in  = &stdin;							// default files
+	ofstream * out = &stdout;
+	try {
+		choose ( argc ) {
+		  case 2, 3:
+			  in = new( (const char *)argv[1] );		// open input file first as output creates file
+			  if ( argc == 3 ) out = new( (const char *)argv[2] ); // only open output if input opens as output created if nonexistent
+		  case 1: ;					// use default files
+		  default:
+			  exit | "Usage [ input-file (default stdin) [ output-file (default stdout) ] ]";
+		} // choose
 
-	char ch;
-	out | nlOff;					// turn off auto newline
-	in  | nlOn;					// turn on reading newline
+		char ch;
+		*out | nlOff;									// turn off auto newline
+		*in  | nlOn;									// turn on reading newline
 
-	for () {					// read all characters
-	    in | ch;
-	  if ( eof( in ) ) break;			// eof ?
-	    out | ch;
-	} // for
-    } finally {
-	close( in );					// stdin, stdout are never closed
-	close( out );
-    } // try
+		for () {										// read all characters
+			*in | ch;
+		  if ( eof( *in ) ) break;						// eof ?
+			*out | ch;
+		} // for
+	} finally {
+		if ( in  != &stdin  ) delete( in );				// close file, do not delete stdin!
+		if ( out != &stdout ) delete( out );			// close file, do not delete stdout!
+	} // try
 } // main
 
Index: tests/.in/copyfile.txt
===================================================================
--- tests/.in/copyfile.txt	(revision 8d75345a27e4a35f5f583b4c11337696aa1faf63)
+++ tests/.in/copyfile.txt	(revision 3f654ecdcfdb73f9b05285ff8427be103b5a03b8)
@@ -10,36 +10,37 @@
 // Created On       : Tue Jul 16 16:47:22 2019
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Jul 16 16:48:16 2019
-// Update Count     : 1
+// Last Modified On : Wed Jul 17 18:04:44 2019
+// Update Count     : 26
 // 
 
 #include <fstream.hfa>
+#include <stdlib.hfa>									// new/delete
 
 int main( int argc, char * argv[] ) {
-    ifstream & in  = stdin;				// default files
-    ofstream & out = stdout;
-    try {
-	choose ( argc ) {
-	  case 2, 3:
-	    open( in, argv[1] );			// open input file first as output creates file
-	    if ( argc == 3 ) open( out, argv[2] );	// only open output if input opens as output created if nonexistent
-	  case 1: ;					// use default files
-	  default:
-	    exit | "Usage [ input-file (default stdin) [ output-file (default stdout) ] ]";
-	} // choose
+	ifstream * in  = &stdin;							// default files
+	ofstream * out = &stdout;
+	try {
+		choose ( argc ) {
+		  case 2, 3:
+			  in = new( (const char *)argv[1] );		// open input file first as output creates file
+			  if ( argc == 3 ) out = new( (const char *)argv[2] ); // only open output if input opens as output created if nonexistent
+		  case 1: ;					// use default files
+		  default:
+			  exit | "Usage [ input-file (default stdin) [ output-file (default stdout) ] ]";
+		} // choose
 
-	char ch;
-	out | nlOff;					// turn off auto newline
-	in  | nlOn;					// turn on reading newline
+		char ch;
+		*out | nlOff;									// turn off auto newline
+		*in  | nlOn;									// turn on reading newline
 
-	for () {					// read all characters
-	    in | ch;
-	  if ( eof( in ) ) break;			// eof ?
-	    out | ch;
-	} // for
-    } finally {
-	close( in );					// stdin, stdout are never closed
-	close( out );
-    } // try
+		for () {										// read all characters
+			*in | ch;
+		  if ( eof( *in ) ) break;						// eof ?
+			*out | ch;
+		} // for
+	} finally {
+		if ( in  != &stdin  ) delete( in );				// close file, do not delete stdin!
+		if ( out != &stdout ) delete( out );			// close file, do not delete stdout!
+	} // try
 } // main
 
Index: tests/copyfile.cfa
===================================================================
--- tests/copyfile.cfa	(revision 8d75345a27e4a35f5f583b4c11337696aa1faf63)
+++ tests/copyfile.cfa	(revision 3f654ecdcfdb73f9b05285ff8427be103b5a03b8)
@@ -10,36 +10,37 @@
 // Created On       : Tue Jul 16 16:47:22 2019
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Jul 16 16:48:16 2019
-// Update Count     : 1
+// Last Modified On : Wed Jul 17 18:04:44 2019
+// Update Count     : 26
 // 
 
 #include <fstream.hfa>
+#include <stdlib.hfa>									// new/delete
 
 int main( int argc, char * argv[] ) {
-    ifstream & in  = stdin;				// default files
-    ofstream & out = stdout;
-    try {
-	choose ( argc ) {
-	  case 2, 3:
-	    open( in, argv[1] );			// open input file first as output creates file
-	    if ( argc == 3 ) open( out, argv[2] );	// only open output if input opens as output created if nonexistent
-	  case 1: ;					// use default files
-	  default:
-	    exit | "Usage [ input-file (default stdin) [ output-file (default stdout) ] ]";
-	} // choose
+	ifstream * in  = &stdin;							// default files
+	ofstream * out = &stdout;
+	try {
+		choose ( argc ) {
+		  case 2, 3:
+			  in = new( (const char *)argv[1] );		// open input file first as output creates file
+			  if ( argc == 3 ) out = new( (const char *)argv[2] ); // only open output if input opens as output created if nonexistent
+		  case 1: ;					// use default files
+		  default:
+			  exit | "Usage [ input-file (default stdin) [ output-file (default stdout) ] ]";
+		} // choose
 
-	char ch;
-	out | nlOff;					// turn off auto newline
-	in  | nlOn;					// turn on reading newline
+		char ch;
+		*out | nlOff;									// turn off auto newline
+		*in  | nlOn;									// turn on reading newline
 
-	for () {					// read all characters
-	    in | ch;
-	  if ( eof( in ) ) break;			// eof ?
-	    out | ch;
-	} // for
-    } finally {
-	close( in );					// stdin, stdout are never closed
-	close( out );
-    } // try
+		for () {										// read all characters
+			*in | ch;
+		  if ( eof( *in ) ) break;						// eof ?
+			*out | ch;
+		} // for
+	} finally {
+		if ( in  != &stdin  ) delete( in );				// close file, do not delete stdin!
+		if ( out != &stdout ) delete( out );			// close file, do not delete stdout!
+	} // try
 } // main
 
