diff --git a/src/backend/utils/sort/tuplesort.c b/src/backend/utils/sort/tuplesort.c
index af0109fda653f5a2e31d4536a62451fc06744635..80a027d4a7a1e168fec069a354592f37fa9b9955 100644
--- a/src/backend/utils/sort/tuplesort.c
+++ b/src/backend/utils/sort/tuplesort.c
@@ -91,7 +91,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/backend/utils/sort/tuplesort.c,v 1.63 2006/03/07 19:06:50 tgl Exp $
+ *	  $PostgreSQL: pgsql/src/backend/utils/sort/tuplesort.c,v 1.64 2006/03/08 16:59:03 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -296,6 +296,7 @@ struct Tuplesortstate
 	int		   *tp_runs;		/* # of real runs on each tape */
 	int		   *tp_dummy;		/* # of dummy runs for each tape (D[]) */
 	int		   *tp_tapenum;		/* Actual tape numbers (TAPE[]) */
+	int			activeTapes;	/* # of active input tapes in merge pass */
 
 	/*
 	 * These variables are used after completion of sorting to keep track of
@@ -943,9 +944,15 @@ tuplesort_performsort(Tuplesortstate *state)
 
 #ifdef TRACE_SORT
 	if (trace_sort)
-		elog(LOG, "performsort done%s: %s",
-			 (state->status == TSS_FINALMERGE) ? " (except final merge)" : "",
-			 pg_rusage_show(&state->ru_start));
+	{
+		if (state->status == TSS_FINALMERGE)
+			elog(LOG, "performsort done (except %d-way final merge): %s",
+				 state->activeTapes,
+				 pg_rusage_show(&state->ru_start));
+		else
+			elog(LOG, "performsort done: %s",
+				 pg_rusage_show(&state->ru_start));
+	}
 #endif
 
 	MemoryContextSwitchTo(oldcontext);
@@ -1566,7 +1573,7 @@ mergeonerun(Tuplesortstate *state)
 
 #ifdef TRACE_SORT
 	if (trace_sort)
-		elog(LOG, "finished merge step: %s",
+		elog(LOG, "finished %d-way merge step: %s", state->activeTapes,
 			 pg_rusage_show(&state->ru_start));
 #endif
 }
@@ -1614,6 +1621,7 @@ beginmerge(Tuplesortstate *state)
 			activeTapes++;
 		}
 	}
+	state->activeTapes = activeTapes;
 
 	/*
 	 * Initialize space allocation to let each active input tape have an equal