diff --git a/src/backend/tcop/pquery.c b/src/backend/tcop/pquery.c
index 0cb7865a9f66b8276cf660ae037bc5d69fc5ed4c..e3a37b7310e2f532f088f48929a309ad46052924 100644
--- a/src/backend/tcop/pquery.c
+++ b/src/backend/tcop/pquery.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/tcop/pquery.c,v 1.62 2003/05/06 20:26:27 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/tcop/pquery.c,v 1.63 2003/05/06 21:01:04 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -727,6 +727,23 @@ PortalRunMulti(Portal portal,
 	List	   *plantree_list = portal->planTrees;
 	List	   *querylist_item;
 
+	/*
+	 * If the destination is RemoteExecute, change to None.  The reason
+	 * is that the client won't be expecting any tuples, and indeed has no
+	 * way to know what they are, since there is no provision for Describe
+	 * to send a RowDescription message when this portal execution strategy
+	 * is in effect.  This presently will only affect SELECT commands added
+	 * to non-SELECT queries by rewrite rules: such commands will be executed,
+	 * but the results will be discarded unless you use "simple Query"
+	 * protocol.
+	 */
+	if (dest->mydest == RemoteExecute ||
+		dest->mydest == RemoteExecuteInternal)
+		dest = None_Receiver;
+	if (altdest->mydest == RemoteExecute ||
+		altdest->mydest == RemoteExecuteInternal)
+		altdest = None_Receiver;
+
 	/*
 	 * Loop to handle the individual queries generated from a
 	 * single parsetree by analysis and rewrite.