diff --git a/master/slave.c b/master/slave.c
index 5765a834788f7fdabb7159eff68acb7ec3ef2e76..eeb96e1870a22322bf0cef600a038ca26580ce47 100644
--- a/master/slave.c
+++ b/master/slave.c
@@ -866,6 +866,18 @@ int ec_slave_is_coupler(const ec_slave_t *slave /**< EtherCAT slave */)
 
 /*****************************************************************************/
 
+/**
+   \return non-zero if slave is a bus coupler
+*/
+
+int ec_slave_has_subbus(const ec_slave_t *slave /**< EtherCAT slave */)
+{
+    return slave->sii_vendor_id == 0x00000002
+        && slave->sii_product_code == 0x13ED3052;
+}
+
+/*****************************************************************************/
+
 /**
    \return 0 in case of success, else < 0
 */
diff --git a/master/slave.h b/master/slave.h
index 49335b0f94be9ec62d9c960ed9328095cbdabeec..a9d7087e543df18c106a76277ed2c8ced86a3882 100644
--- a/master/slave.h
+++ b/master/slave.h
@@ -334,6 +334,7 @@ uint16_t ec_slave_calc_sync_size(const ec_slave_t *,
                                  const ec_sii_sync_t *);
 
 int ec_slave_is_coupler(const ec_slave_t *);
+int ec_slave_has_subbus(const ec_slave_t *);
 
 /*****************************************************************************/