-#if USB_CFG_CLOCK_KHZ == 12000
-# include "usbdrvasm12.inc"
-#elif USB_CFG_CLOCK_KHZ == 12800
-# include "usbdrvasm128.inc"
-#elif USB_CFG_CLOCK_KHZ == 15000
-# include "usbdrvasm15.inc"
-#elif USB_CFG_CLOCK_KHZ == 16000
-# include "usbdrvasm16.inc"
-#elif USB_CFG_CLOCK_KHZ == 16500
-# include "usbdrvasm165.inc"
-#elif USB_CFG_CLOCK_KHZ == 20000
-# include "usbdrvasm20.inc"
-#else
-# error "USB_CFG_CLOCK_KHZ is not one of the supported rates!"
-#endif
+#if USB_CFG_CHECK_CRC /* separate dispatcher for CRC type modules */
+# if USB_CFG_CLOCK_KHZ == 18000
+# include "usbdrvasm18-crc.inc"
+# else
+# error "USB_CFG_CLOCK_KHZ is not one of the supported rates for USB_CFG_CHECK_CRC!"
+# endif
+#else /* USB_CFG_CHECK_CRC */
+# if USB_CFG_CLOCK_KHZ == 12000
+# include "usbdrvasm12.inc"
+# elif USB_CFG_CLOCK_KHZ == 12800
+# include "usbdrvasm128.inc"
+# elif USB_CFG_CLOCK_KHZ == 15000
+# include "usbdrvasm15.inc"
+# elif USB_CFG_CLOCK_KHZ == 16000
+# include "usbdrvasm16.inc"
+# elif USB_CFG_CLOCK_KHZ == 16500
+# include "usbdrvasm165.inc"
+# elif USB_CFG_CLOCK_KHZ == 18000
+# include "usbdrvasm18.inc"
+# elif USB_CFG_CLOCK_KHZ == 20000
+# include "usbdrvasm20.inc"
+# else
+# error "USB_CFG_CLOCK_KHZ is not one of the supported rates!"
+# endif
+#endif /* USB_CFG_CHECK_CRC */