diff --git a/src/backend/optimizer/geqo/geqo_eval.c b/src/backend/optimizer/geqo/geqo_eval.c
index 71d7f0f399cb59cb4d5e14af7e47e48b3998cb78..00dbffa4ea3e96ca58d8961c10efc5a66527d945 100644
--- a/src/backend/optimizer/geqo/geqo_eval.c
+++ b/src/backend/optimizer/geqo/geqo_eval.c
@@ -5,7 +5,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: geqo_eval.c,v 1.30 1999/02/14 04:56:45 momjian Exp $
+ * $Id: geqo_eval.c,v 1.31 1999/02/15 02:04:58 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -337,24 +337,21 @@ new_join_tlist(List *tlist,
 {
 	int			resdomno = first_resdomno - 1;
 	TargetEntry *xtl = NULL;
-	List	   *temp_node = NIL;
 	List	   *t_list = NIL;
 	List	   *i = NIL;
 	List	   *join_list = NIL;
 	bool		in_final_tlist = false;
 
-
 	foreach(i, tlist)
 	{
 		xtl = lfirst(i);
+		/* XXX surely this is wrong?  join_list is never changed?  tgl 2/99 */
 		in_final_tlist = (join_list == NIL);
 		if (in_final_tlist)
 		{
 			resdomno += 1;
-			temp_node = lcons(create_tl_element(get_expr(xtl),
-										resdomno),
-					  NIL);
-			t_list = nconc(t_list, temp_node);
+			t_list = lappend(t_list,
+							 create_tl_element(get_expr(xtl), resdomno));
 		}
 	}
 
@@ -590,7 +587,6 @@ static List *
 geqo_final_join_rels(List *join_rel_list)
 {
 	List	   *xrel = NIL;
-	List	   *temp = NIL;
 	List	   *t_list = NIL;
 
 	/*
@@ -615,8 +611,7 @@ geqo_final_join_rels(List *join_rel_list)
 		}
 		if (final)
 		{
-			temp = lcons(rel, NIL);
-			t_list = nconc(t_list, temp);
+			t_list = lappend(t_list, rel);
 		}
 	}
 
diff --git a/src/backend/optimizer/geqo/geqo_paths.c b/src/backend/optimizer/geqo/geqo_paths.c
index a39aa217286b7139022b66aef1a5838019188007..8f1902a18c73c7ed2539faca707ee8d71df67dd6 100644
--- a/src/backend/optimizer/geqo/geqo_paths.c
+++ b/src/backend/optimizer/geqo/geqo_paths.c
@@ -5,7 +5,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: geqo_paths.c,v 1.20 1999/02/13 23:16:11 momjian Exp $
+ * $Id: geqo_paths.c,v 1.21 1999/02/15 02:04:58 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -66,10 +66,9 @@ geqo_prune_rels(List *rel_list)
 static List *
 geqo_prune_rel(RelOptInfo *rel, List *other_rels)
 {
-	List	   *i = NIL;
 	List	   *t_list = NIL;
-	List	   *temp_node = NIL;
-	RelOptInfo *other_rel = (RelOptInfo *) NULL;
+	List	   *i;
+	RelOptInfo *other_rel;
 
 	foreach(i, other_rels)
 	{
@@ -79,12 +78,10 @@ geqo_prune_rel(RelOptInfo *rel, List *other_rels)
 			rel->pathlist = add_pathlist(rel,
 										 rel->pathlist,
 										 other_rel->pathlist);
-			t_list = nconc(t_list, NIL);		/* XXX is this right ? */
 		}
 		else
 		{
-			temp_node = lcons(other_rel, NIL);
-			t_list = nconc(t_list, temp_node);
+			t_list = lappend(t_list, other_rel);
 		}
 	}
 	return t_list;
diff --git a/src/backend/optimizer/path/indxpath.c b/src/backend/optimizer/path/indxpath.c
index efedd76325c57e74c31b92c26f32685b38b539d3..1c616883737bcbdedb864e239aadac68560ffc37 100644
--- a/src/backend/optimizer/path/indxpath.c
+++ b/src/backend/optimizer/path/indxpath.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/optimizer/path/indxpath.c,v 1.45 1999/02/15 01:06:57 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/optimizer/path/indxpath.c,v 1.46 1999/02/15 02:04:55 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -170,14 +170,13 @@ find_index_paths(Query *root,
 
 		if (joinclausegroups != NIL)
 		{
-			List	   *new_join_paths = create_index_paths(root, rel,
-															index,
-														joinclausegroups,
-															true);
-			List	   *innerjoin_paths = index_innerjoin(root, rel, joinclausegroups, index);
-
-			rel->innerjoin = nconc(rel->innerjoin, innerjoin_paths);
-			joinpaths = new_join_paths;
+			joinpaths = create_index_paths(root, rel,
+										   index,
+										   joinclausegroups,
+										   true);
+			rel->innerjoin = nconc(rel->innerjoin,
+								   index_innerjoin(root, rel,
+												   joinclausegroups, index));
 		}
 
 		/*
@@ -1360,7 +1359,6 @@ create_index_paths(Query *root,
 	foreach(i, clausegroup_list)
 	{
 		RestrictInfo *restrictinfo;
-		List	   *temp_node = NIL;
 		bool		temp = true;
 
 		clausegroup = lfirst(i);
@@ -1377,8 +1375,7 @@ create_index_paths(Query *root,
 		if (!join || temp)
 		{						/* restriction, ordering scan */
 			temp_path = create_index_path(root, rel, index, clausegroup, join);
-			temp_node = lcons(temp_path, NIL);
-			ip_list = nconc(ip_list, temp_node);
+			ip_list = lappend(ip_list, temp_path);
 		}
 	}
 	return ip_list;
diff --git a/src/backend/optimizer/path/joinpath.c b/src/backend/optimizer/path/joinpath.c
index 4e344e0aa8aa26b01ecd5114dc4af47af25abcba..9dd7580570c5316743518df21880da34268b6c50 100644
--- a/src/backend/optimizer/path/joinpath.c
+++ b/src/backend/optimizer/path/joinpath.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinpath.c,v 1.25 1999/02/14 05:27:12 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinpath.c,v 1.26 1999/02/15 02:04:57 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -422,7 +422,6 @@ match_unsorted_inner(RelOptInfo *joinrel,
 {
 	Path	   *innerpath = (Path *) NULL;
 	List	   *mp_list = NIL;
-	List	   *temp_node = NIL;
 	PathOrder  *innerpath_ordering = NULL;
 	Cost		temp1 = 0.0;
 	bool		temp2 = false;
@@ -482,7 +481,8 @@ match_unsorted_inner(RelOptInfo *joinrel,
 								  joinrel->targetlist,
 								  clauses);
 
-				temp_node = lcons(create_mergejoin_path(joinrel,
+				mp_list = lappend(mp_list,
+								  create_mergejoin_path(joinrel,
 												outerrel->size,
 												innerrel->size,
 												outerrel->width,
@@ -493,10 +493,7 @@ match_unsorted_inner(RelOptInfo *joinrel,
 												xmergeinfo->m_ordering,
 												matchedJoinClauses,
 												outerkeys,
-												NIL),
-						  NIL);
-
-				mp_list = nconc(mp_list, temp_node);
+												NIL));
 			}
 		}
 	}
diff --git a/src/backend/optimizer/path/joinrels.c b/src/backend/optimizer/path/joinrels.c
index 4e0307c874929411d7aca240e2b7813d6a532c57..5b063db4c79b311efdd27e786f2504fcb071c968 100644
--- a/src/backend/optimizer/path/joinrels.c
+++ b/src/backend/optimizer/path/joinrels.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinrels.c,v 1.21 1999/02/14 04:56:47 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinrels.c,v 1.22 1999/02/15 02:04:57 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -165,7 +165,6 @@ find_clauseless_joins(RelOptInfo *outer_rel, List *inner_rels)
 {
 	RelOptInfo *inner_rel;
 	List	   *t_list = NIL;
-	List	   *temp_node = NIL;
 	List	   *i = NIL;
 
 	foreach(i, inner_rels)
@@ -173,11 +172,10 @@ find_clauseless_joins(RelOptInfo *outer_rel, List *inner_rels)
 		inner_rel = (RelOptInfo *) lfirst(i);
 		if (nonoverlap_rels(inner_rel, outer_rel))
 		{
-			temp_node = lcons(init_join_rel(outer_rel,
-											inner_rel,
-											(JoinInfo *) NULL),
-							  NIL);
-			t_list = nconc(t_list, temp_node);
+			t_list = lappend(t_list,
+							 init_join_rel(outer_rel,
+										   inner_rel,
+										   (JoinInfo *) NULL));
 		}
 	}
 
@@ -278,24 +276,21 @@ new_join_tlist(List *tlist,
 {
 	int			resdomno = first_resdomno - 1;
 	TargetEntry *xtl = NULL;
-	List	   *temp_node = NIL;
 	List	   *t_list = NIL;
 	List	   *i = NIL;
 	List	   *join_list = NIL;
 	bool		in_final_tlist = false;
 
-
 	foreach(i, tlist)
 	{
 		xtl = lfirst(i);
+		/* XXX surely this is wrong?  join_list is never changed?  tgl 2/99 */
 		in_final_tlist = (join_list == NIL);
 		if (in_final_tlist)
 		{
 			resdomno += 1;
-			temp_node = lcons(create_tl_element(get_expr(xtl),
-										resdomno),
-					  NIL);
-			t_list = nconc(t_list, temp_node);
+			t_list = lappend(t_list, 
+							 create_tl_element(get_expr(xtl), resdomno));
 		}
 	}
 
@@ -479,7 +474,6 @@ List *
 final_join_rels(List *join_rel_list)
 {
 	List	   *xrel = NIL;
-	List	   *temp = NIL;
 	List	   *t_list = NIL;
 
 	/*
@@ -504,8 +498,7 @@ final_join_rels(List *join_rel_list)
 		}
 		if (final)
 		{
-			temp = lcons(rel, NIL);
-			t_list = nconc(t_list, temp);
+			t_list = lappend(t_list, rel);
 		}
 	}
 
diff --git a/src/backend/optimizer/path/joinutils.c b/src/backend/optimizer/path/joinutils.c
index 2a0f334317f0feebf71b2cd280cce4b8d6b4b959..ed2df051eb3403fa6e3f2f8c7f3718317992660c 100644
--- a/src/backend/optimizer/path/joinutils.c
+++ b/src/backend/optimizer/path/joinutils.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/joinutils.c,v 1.20 1999/02/13 23:16:19 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/joinutils.c,v 1.21 1999/02/15 02:04:57 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -410,11 +410,10 @@ new_matching_subkeys(Var *subkey,
 					 List *join_rel_tlist,
 					 List *joinclauses)
 {
-	Expr	   *joinclause = NULL;
 	List	   *t_list = NIL;
-	List	   *temp = NIL;
-	List	   *i = NIL;
-	Expr	   *tlist_other_var = (Expr *) NULL;
+	Expr	   *joinclause;
+	List	   *i;
+	Expr	   *tlist_other_var;
 
 	foreach(i, joinclauses)
 	{
@@ -436,8 +435,7 @@ new_matching_subkeys(Var *subkey,
 			 * am not sure of this.
 			 */
 
-			temp = lcons(tlist_other_var, NIL);
-			t_list = nconc(t_list, temp);
+			t_list = lappend(t_list, tlist_other_var);
 		}
 	}
 	return t_list;
diff --git a/src/backend/optimizer/plan/createplan.c b/src/backend/optimizer/plan/createplan.c
index 2559c376a738a69ff3318b54c98adcd3807a7bcc..c870b1d81ec90c0c52d90e2a7c7ddbda1185c7fd 100644
--- a/src/backend/optimizer/plan/createplan.c
+++ b/src/backend/optimizer/plan/createplan.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/optimizer/plan/createplan.c,v 1.47 1999/02/15 01:06:58 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/optimizer/plan/createplan.c,v 1.48 1999/02/15 02:04:55 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -385,8 +385,7 @@ create_indexscan_node(IndexPath *best_path,
 								lcons(index_clause, NIL));
 
 		if (lossy)
-			qpqual = nconc(qpqual,
-						   lcons((List *) copyObject(index_clause), NIL));
+			qpqual = lappend(qpqual, (List *) copyObject(index_clause));
 	}
 	else
 	{
@@ -1200,8 +1199,7 @@ generate_fjoin(List *tlist)
 									  inner,
 									  results,
 									  alwaysDone);
-		tempList = lcons(fjoinNode, NIL);
-		tempList = nconc(tempList, fjoinList);
+		tempList = lcons(fjoinNode, fjoinList);
 		newTlist = lappend(newTlist, tempList);
 	}
 	return newTlist;