diff --git a/repos/os/src/drivers/sd_card/spec/imx53/esdhcv2.h b/repos/os/src/drivers/sd_card/spec/imx53/esdhcv2.h
index dd3446fa4f..5ae798fe7a 100644
--- a/repos/os/src/drivers/sd_card/spec/imx53/esdhcv2.h
+++ b/repos/os/src/drivers/sd_card/spec/imx53/esdhcv2.h
@@ -436,6 +436,9 @@ struct Esdhcv2_controller : private Esdhcv2, public Sd_card::Host_controller
 		 */
 		Sd_card::Card_info _init()
 		{
+			/* install IRQ signal */
+			_irq.sigh(_irq_rec.manage(&_irq_ctx));
+
 			/* configure host for initialization stage */
 			using namespace Sd_card;
 			if (!reset_all(_delayer)) { _detect_err("Host reset failed"); }
@@ -758,10 +761,7 @@ struct Esdhcv2_controller : private Esdhcv2, public Sd_card::Host_controller
 		                   Delayer & delayer, bool const use_dma)
 		:
 			Esdhcv2(mmio_base), _irq(irq), 
-			_delayer(delayer), _card_info(_init()), _use_dma(use_dma)
-		{
-			_irq.sigh(_irq_rec.manage(&_irq_ctx));
-		}
+			_delayer(delayer), _card_info(_init()), _use_dma(use_dma) { }
 
 		~Esdhcv2_controller() { _irq_rec.dissolve(&_irq_ctx); }