diff --git a/src/jtag/gw16012.c b/src/jtag/gw16012.c
index 0ea66340c465941d0cd802216a1f5725c0960c34..b5fd28814f9ff7da97a8ab0d256eb8b3e289208f 100644
--- a/src/jtag/gw16012.c
+++ b/src/jtag/gw16012.c
@@ -571,12 +571,23 @@ static int gw16012_quit(void)
 
 static int gw16012_handle_parport_port_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
 {
-	if (argc == 0)
-		return ERROR_OK;
+	if (argc == 1)
+	{
+		/* only if the port wasn't overwritten by cmdline */
+		if (gw16012_port == 0)
+		{
+			int retval = parse_u16(args[0], &gw16012_port);
+			if (ERROR_OK != retval)
+				return retval;
+		}
+		else
+		{
+			LOG_ERROR("The parport port was already configured!");
+			return ERROR_FAIL;
+		}
+	}
 
-	/* only if the port wasn't overwritten by cmdline */
-	if (gw16012_port == 0)
-		gw16012_port = strtoul(args[0], NULL, 0);
+	command_print(cmd_ctx, "parport port = %u", gw16012_port);
 
 	return ERROR_OK;
 }