diff --git a/src/interfaces/libpgtcl/pgtclCmds.c b/src/interfaces/libpgtcl/pgtclCmds.c
index c68c842fedc84a15c1f5e9888fd31d0c3353eac9..0d80434edbdf62c9b3d75fbad329cf07add66dfa 100644
--- a/src/interfaces/libpgtcl/pgtclCmds.c
+++ b/src/interfaces/libpgtcl/pgtclCmds.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/pgtclCmds.c,v 1.22 1998/03/15 08:02:58 scrappy Exp $
+ *	  $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/pgtclCmds.c,v 1.23 1998/03/30 17:39:16 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1226,6 +1226,7 @@ Pg_select(ClientData cData, Tcl_Interp *interp, int argc, char **argv)
 	}
 
 	Tcl_SetVar2(interp, argv[3], ".headers", Tcl_DStringValue(&headers), 0);
+	Tcl_DStringFree(&headers);
 	sprintf(buffer, "%d", ncols);
 	Tcl_SetVar2(interp, argv[3], ".numcols", buffer, 0);
 
@@ -1236,8 +1237,7 @@ Pg_select(ClientData cData, Tcl_Interp *interp, int argc, char **argv)
 
 		for (column = 0; column < ncols; column++)
 		{
-			strcpy(buffer, PQgetvalue(result, tupno, column));
-			Tcl_SetVar2(interp, argv[3], info[column].cname, buffer, 0);
+			Tcl_SetVar2(interp, argv[3], info[column].cname, PQgetvalue(result, tupno, column), 0);
 		}
 
 		Tcl_SetVar2(interp, argv[3], ".command", "update", 0);