diff --git a/src/sim/reader_pcsc.c b/src/sim/reader_pcsc.c
index f22103f..9e05e3c 100644
--- a/src/sim/reader_pcsc.c
+++ b/src/sim/reader_pcsc.c
@@ -79,17 +79,18 @@
 	rc = SCardListReaders(st->hContext, NULL, (LPSTR)&mszReaders, &dwReaders);
 	PCSC_ERROR(rc, "SCardListReaders");
 
+	/* SCARD_S_SUCCESS means there is at least one reader in the group */
 	num_readers = 0;
 	ptr = mszReaders;
-	while (*ptr != '\0') {
+	while (*ptr != '\0' && num_readers != num) {
 		ptr += strlen(ptr)+1;
 		num_readers++;
 	}
 
-	if (num_readers == 0)
+	if (num != num_readers)
 		goto end;
 
-	st->name = talloc_strdup(rh, mszReaders);
+	st->name = talloc_strdup(rh, ptr);
 	st->dwActiveProtocol = -1;
 
 	return rh;
diff --git a/utils/osmo-sim-test.c b/utils/osmo-sim-test.c
index 5588294..cd98397 100644
--- a/utils/osmo-sim-test.c
+++ b/utils/osmo-sim-test.c
@@ -22,6 +22,7 @@
 #include <stdlib.h>
 #include <errno.h>
 #include <string.h>
+#include <getopt.h>
 #include <arpa/inet.h>
 
 #include <osmocom/core/msgb.h>
@@ -328,6 +329,51 @@
 	return -EINVAL;
 }
 
+static void print_help(void)
+{
+	printf(	"osmo-sim-test Usage:\n"
+		" -h  --help		This message\n"
+		" -n  --reader-num NR	Open reader number NR\n"
+	      );
+}
+
+static int readernum = 0;
+
+static void handle_options(int argc, char **argv)
+{
+	while (1) {
+		int option_index = 0, c;
+		const struct option long_options[] = {
+			{ "help", 0, 0, 'h' },
+			{ "reader-num", 1, 0, 'n' },
+			{0,0,0,0}
+		};
+
+		c = getopt_long(argc, argv, "hn:",
+				long_options, &option_index);
+		if (c == -1)
+			break;
+
+		switch (c) {
+		case 'h':
+			print_help();
+			exit(0);
+			break;
+		case 'n':
+			readernum = atoi(optarg);
+			break;
+		default:
+			exit(2);
+			break;
+		}
+	}
+
+	if (argc > optind) {
+		fprintf(stderr, "Unsupported positional arguments on command line\n");
+		exit(2);
+	}
+}
+
 int main(int argc, char **argv)
 {
 	struct osim_reader_hdl *reader;
@@ -335,7 +381,9 @@
 	struct osim_chan_hdl *chan;
 	struct msgb *msg;
 
-	reader = osim_reader_open(OSIM_READER_DRV_PCSC, 0, "", NULL);
+	handle_options(argc, argv);
+
+	reader = osim_reader_open(OSIM_READER_DRV_PCSC, readernum, "", NULL);
 	if (!reader)
 		exit(1);
 	card = osim_card_open(reader, OSIM_PROTO_T0);
