diff --git a/TODO b/TODO
index bd5ffc4aac9d579de7b26fa964aa215f59a5b914..c0c1ee76ef78137b703c074b4cb53fb35a3a45d6 100644
--- a/TODO
+++ b/TODO
@@ -21,7 +21,6 @@ Version 1.4.0:
     - Add a -n (numeric) switch.
     - Check for options, remove global variables.
     - Remove MasterDevice::slaveCount().
-    - Alias index?
     - Add 'etherlab version'.
 
 Future issues:
diff --git a/tool/Command.cpp b/tool/Command.cpp
index d3c9e6bcb2db19b6a1da0e3bacc232040aa0eb93..95cd0a69974f9365c70b0bedb6c2edbbb9a0d0c6 100644
--- a/tool/Command.cpp
+++ b/tool/Command.cpp
@@ -143,12 +143,11 @@ Command::SlaveList Command::selectedSlaves(MasterDevice &m)
             aliasIndex = 0;
             for (i = 0; i < numSlaves; i++) {
                 m.getSlave(&slave, i);
-                if (slave.alias) { // FIXME 'lock' first alias
+                if (slave.alias && slave.alias == (uint16_t) alias) {
                     lastAlias = slave.alias;
                     aliasIndex = 0;
                 }
-                if (lastAlias == (uint16_t) alias
-                        && aliasIndex == (unsigned int) position) {
+                if (lastAlias && aliasIndex == (unsigned int) position) {
                     list.push_back(slave);
                 }
                 aliasIndex++;