diff --git a/src/fe/mapApp.c b/src/fe/mapApp.c
index e9a470c8e8d099fd8051075b5bcafca7fb46aa08..f3dc185359cb6270c6fb92e49d989d4c2f7cd1cc 100644
--- a/src/fe/mapApp.c
+++ b/src/fe/mapApp.c
@@ -95,7 +95,7 @@ mapPciModules( CDS_HARDWARE* pCds )
 
             case CON_6464DIO:
                 if ( ( pCds->cards_used[ jj ].type == CON_6464DIO ) &&
-                     ( pCds->cards_used[ jj ].instance == doCnt ) )
+                     ( pCds->cards_used[ jj ].instance == ioMemData->card[ ii ] ) )
                 {
                     kk = pCds->doCount;
                     pCds->doType[ kk ] = ioMemData->model[ ii ];
@@ -107,7 +107,7 @@ mapPciModules( CDS_HARDWARE* pCds )
                     status += 2;
                 }
                 if ( ( pCds->cards_used[ jj ].type == CDO64 ) &&
-                     ( pCds->cards_used[ jj ].instance == doCnt ) )
+                     ( pCds->cards_used[ jj ].instance == ioMemData->card[ ii ] ) )
                 {
                     kk = pCds->doCount;
                     pCds->doType[ kk ] = CDO64;
@@ -119,7 +119,7 @@ mapPciModules( CDS_HARDWARE* pCds )
                     status++;
                 }
                 if ( ( pCds->cards_used[ jj ].type == CDI64 ) &&
-                     ( pCds->cards_used[ jj ].instance == doCnt ) )
+                     ( pCds->cards_used[ jj ].instance == ioMemData->card[ ii ] ) )
                 {
                     kk = pCds->doCount;
                     pCds->doType[ kk ] = CDI64;
@@ -133,7 +133,7 @@ mapPciModules( CDS_HARDWARE* pCds )
                 break;
             case CON_32DO:
                 if ( ( pCds->cards_used[ jj ].type == CON_32DO ) &&
-                     ( pCds->cards_used[ jj ].instance == do32Cnt ) )
+                     ( pCds->cards_used[ jj ].instance == ioMemData->card[ ii ] ) )
                 {
                     kk = pCds->doCount;
                     pCds->doType[ kk ] = ioMemData->model[ ii ];
@@ -146,7 +146,7 @@ mapPciModules( CDS_HARDWARE* pCds )
                 break;
             case ACS_16DIO:
                 if ( ( pCds->cards_used[ jj ].type == ACS_16DIO ) &&
-                     ( pCds->cards_used[ jj ].instance == doIIRO16Cnt ) )
+                     ( pCds->cards_used[ jj ].instance == ioMemData->card[ ii ] ) )
                 {
                     kk = pCds->doCount;
                     pCds->doType[ kk ] = ioMemData->model[ ii ];
@@ -159,7 +159,7 @@ mapPciModules( CDS_HARDWARE* pCds )
                 break;
             case ACS_8DIO:
                 if ( ( pCds->cards_used[ jj ].type == ACS_8DIO ) &&
-                     ( pCds->cards_used[ jj ].instance == doIIRO8Cnt ) )
+                     ( pCds->cards_used[ jj ].instance == ioMemData->card[ ii ] ) )
                 {
                     kk = pCds->doCount;
                     pCds->doType[ kk ] = ioMemData->model[ ii ];
diff --git a/src/fe/moduleLoadCommon.c b/src/fe/moduleLoadCommon.c
index ecc512e48c77d838aaa7720acc591b4b1560c936..2af4046e955cdfd93c854bac4d3edf8163e09371 100644
--- a/src/fe/moduleLoadCommon.c
+++ b/src/fe/moduleLoadCommon.c
@@ -125,7 +125,7 @@ print_io_info( CDS_HARDWARE* cdsp , int iopmodel)
             }
         }
     }
-    kk += cdsp->dioCount;
+    kk += cdsp->doCount;
     printf( "******************************************************************"
             "*********\n" );
     printf( "" SYSTEM_NAME_STRING_LOWER ":%d DIO cards found\n",
@@ -423,6 +423,7 @@ send_io_info_to_mbuf( int totalcards, CDS_HARDWARE* pCds )
             tdsCount++;
         }
         ioMemData->model[ kk ] = pCds->doType[ ii ];
+        ioMemData->card[ kk ] = pCds->doInstance[ ii ];
         // Unlike ADC and DAC, where a memory buffer number is passed, a PCIe
         // address is passed for DIO cards.
         ioMemData->ipc[ kk ] = pCds->pci_do[ ii ];