diff --git a/src/bin/psql/common.c b/src/bin/psql/common.c
index 715e23167de82709da99b8c8afa58d81935eb25c..33dc97e95f249576165adb28d7c59b556a2ea08b 100644
--- a/src/bin/psql/common.c
+++ b/src/bin/psql/common.c
@@ -450,7 +450,6 @@ AcceptResult(const PGresult *result)
 			case PGRES_EMPTY_QUERY:
 			case PGRES_COPY_IN:
 			case PGRES_COPY_OUT:
-			case PGRES_COPY_BOTH:
 				/* Fine, do nothing */
 				OK = true;
 				break;
@@ -673,29 +672,17 @@ ProcessResult(PGresult **results)
 		result_status = PQresultStatus(*results);
 		switch (result_status)
 		{
-			case PGRES_COPY_BOTH:
-				/*
-				 * No now-existing SQL command can yield PGRES_COPY_BOTH, but
-				 * defend against the future.  PQexec() can't short-circuit
-				 * it's way out of a PGRES_COPY_BOTH, so the connection will
-				 * be useless at this point.  XXX is there a method for
-				 * clearing this status that's likely to work with every
-				 * future command that can initiate it?
-				 */
-				psql_error("unexpected PQresultStatus (%d)", result_status);
-				return false;
-
-			case PGRES_COPY_OUT:
-			case PGRES_COPY_IN:
-				is_copy = true;
-				break;
-
 			case PGRES_EMPTY_QUERY:
 			case PGRES_COMMAND_OK:
 			case PGRES_TUPLES_OK:
 				is_copy = false;
 				break;
 
+			case PGRES_COPY_OUT:
+			case PGRES_COPY_IN:
+				is_copy = true;
+				break;
+
 			default:
 				/* AcceptResult() should have caught anything else. */
 				is_copy = false;
@@ -817,7 +804,6 @@ PrintQueryResults(PGresult *results)
 
 		case PGRES_COPY_OUT:
 		case PGRES_COPY_IN:
-		case PGRES_COPY_BOTH:
 			/* nothing to do here */
 			success = true;
 			break;