diff --git a/src/target/target.c b/src/target/target.c
index cc8d500f0ccbc1c889da65c1079072f7c03f56df..6ecf16a1e887750fb08a35b3c1a62a0744d94612 100644
--- a/src/target/target.c
+++ b/src/target/target.c
@@ -2308,6 +2308,7 @@ COMMAND_HANDLER(handle_mw_command)
 	bool physical=strcmp(args[0], "phys")==0;
 	int (*fn)(struct target *target,
 			uint32_t address, uint32_t size, uint32_t count, uint8_t *buffer);
+	const char *cmd_name = CMD_NAME;
 	if (physical)
 	{
 		argc--;
@@ -2333,7 +2334,7 @@ COMMAND_HANDLER(handle_mw_command)
 	struct target *target = get_current_target(cmd_ctx);
 	unsigned wordsize;
 	uint8_t value_buf[4];
-	switch (CMD_NAME[2])
+	switch (cmd_name[6])
 	{
 		case 'w':
 			wordsize = 4;