diff --git a/drivers/mfd/glamo/glamo-mci.c b/drivers/mfd/glamo/glamo-mci.c
index e836913..d8d9bea 100644
--- a/drivers/mfd/glamo/glamo-mci.c
+++ b/drivers/mfd/glamo/glamo-mci.c
@@ -398,6 +398,7 @@ done:
 	host->mrq = NULL;
 	mmc_request_done(host->mmc, cmd->mrq);
 	spin_unlock_irqrestore(&host->complete_lock, iflags);
+
 }
 
 static void glamo_mci_irq(unsigned int irq, struct irq_desc *desc)
@@ -579,6 +580,9 @@ static int glamo_mci_prepare_pio(struct glamo_mci_host *host,
 	return 0;
 }
 
+extern int iblock_limit;
+unsigned long s3c2410_gettimeoffset(void);
+
 static void glamo_mci_send_request(struct mmc_host *mmc)
 {
 	struct glamo_mci_host *host = mmc_priv(mmc);
@@ -590,6 +594,7 @@ static void glamo_mci_send_request(struct mmc_host *mmc)
 	int n;
 	int timeout = 1000000;
 	int insanity_timeout = 1000000;
+	unsigned long us;
 
 	if (host->suspending) {
 		dev_err(&host->pdev->dev, "IGNORING glamo_mci_send_request while "
@@ -644,6 +649,9 @@ static void glamo_mci_send_request(struct mmc_host *mmc)
 	 * we must spin until response is ready or timed out
 	 * -- we don't get interrupts unless there is a bulk rx
 	 */
+
+	us = s3c2410_gettimeoffset();
+
 	do
 		status = readw(host->base + GLAMO_REG_MMC_RB_STAT1);
 	while (((((status >> 15) & 1) != (host->ccnt & 1)) ||
@@ -653,6 +661,11 @@ static void glamo_mci_send_request(struct mmc_host *mmc)
 			     GLAMO_STAT1_MMC_BWERR |
 			     GLAMO_STAT1_MMC_BRERR)))) && (insanity_timeout--));
 
+	us = s3c2410_gettimeoffset() - us;
+	if (iblock_limit && us > iblock_limit && us < 10000000)
+		printk(KERN_ERR "glamo_mci_send_request: %lu us - %d polls\n",
+			us, 1000000 - insanity_timeout);
+
 	if (insanity_timeout < 0)
 		dev_info(&host->pdev->dev, "command timeout, continuing\n");
 
