diff --git a/src/backend/commands/dropcmds.c b/src/backend/commands/dropcmds.c
index 25c127b252ae55f41b41308da1a3c51853a8c0b8..e4c17bd2bc72f850705d158badcc35451ce9fde2 100644
--- a/src/backend/commands/dropcmds.c
+++ b/src/backend/commands/dropcmds.c
@@ -203,7 +203,7 @@ does_not_exist_skipping(ObjectType objtype, List *objname, List *objargs)
 		case OBJECT_TRIGGER:
 			msg = gettext_noop("trigger \"%s\" for table \"%s\" does not exist, skipping");
 			name = strVal(llast(objname));
-			args = NameListToString(list_truncate(objname,
+			args = NameListToString(list_truncate(list_copy(objname),
 												  list_length(objname) - 1));
 			break;
 		case OBJECT_EVENT_TRIGGER:
@@ -213,7 +213,7 @@ does_not_exist_skipping(ObjectType objtype, List *objname, List *objargs)
 		case OBJECT_RULE:
 			msg = gettext_noop("rule \"%s\" for relation \"%s\" does not exist, skipping");
 			name = strVal(llast(objname));
-			args = NameListToString(list_truncate(objname,
+			args = NameListToString(list_truncate(list_copy(objname),
 												  list_length(objname) - 1));
 			break;
 		case OBJECT_FDW: