diff --git a/drivers/alsa_midi/port.c b/drivers/alsa_midi/port.c
index 00d33cf..d217310 100644
--- a/drivers/alsa_midi/port.c
+++ b/drivers/alsa_midi/port.c
@@ -111,16 +111,18 @@ a2j_port_fill_name (struct a2j_port * port_ptr, int dir, snd_seq_client_info_t *
 			/* entire client name is part of the port name so don't replicate it */
 			snprintf (port_ptr->name,
 			          sizeof(port_ptr->name),
-			          "[%d] %s %s",
+			          "[%d:%d] %s (%s)",
 			          snd_seq_client_info_get_client (client_info_ptr),
+			          snd_seq_port_info_get_port (port_info_ptr),
 			          port_name,
 			  (dir == A2J_PORT_CAPTURE ? "out" : "in"));
 		} else {
 			snprintf (port_ptr->name,
 			          sizeof(port_ptr->name),
-			          "%s [%d] %s %s",
-			          client_name,
+			          "[%d:%d] %s %s (%s)",
 			          snd_seq_client_info_get_client (client_info_ptr),
+			          snd_seq_port_info_get_port (port_info_ptr),
+			          client_name,
 			          port_name,
 			          (dir == A2J_PORT_CAPTURE ? "out" : "in"));
 		}
@@ -129,13 +131,13 @@ a2j_port_fill_name (struct a2j_port * port_ptr, int dir, snd_seq_client_info_t *
 			/* entire client name is part of the port name so don't replicate it */
 			snprintf (port_ptr->name,
 			          sizeof(port_ptr->name),
-			          "%s %s",
+			          "%s (%s)",
 			          port_name,
 			          (dir == A2J_PORT_CAPTURE ? "out" : "in"));
 		} else {
 			snprintf (port_ptr->name,
 			          sizeof(port_ptr->name),
-			          "%s %s %s",
+			          "%s %s (%s)",
 			          client_name,
 			          snd_seq_port_info_get_name (port_info_ptr),
 			          (dir == A2J_PORT_CAPTURE ? "out" : "in"));
