diff --git a/src/jtag/parport.c b/src/jtag/parport.c
index 4ee2202d06e4919e06723fddf05774e7d55dd6dd..129caf0b5224f2711aefdd80162991079acac0c5 100644
--- a/src/jtag/parport.c
+++ b/src/jtag/parport.c
@@ -429,12 +429,23 @@ static int parport_quit(void)
 
 static int parport_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 (parport_port == 0)
+		{
+			int retval = parse_u16(args[0], &parport_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 (parport_port == 0)
-		parport_port = strtoul(args[0], NULL, 0);
+	command_print(cmd_ctx, "parport port = %u", parport_port);
 
 	return ERROR_OK;
 }