diff --git a/mythtv/libs/libmythtv/cardutil.cpp b/mythtv/libs/libmythtv/cardutil.cpp
index 7acc8ca..ffda264 100644
--- a/mythtv/libs/libmythtv/cardutil.cpp
+++ b/mythtv/libs/libmythtv/cardutil.cpp
@@ -47,6 +47,13 @@
 #define LOC_WARN QString("CardUtil, Warning: ")
 #define LOC_ERR  QString("CardUtil, Error: ")
 
+/// This is a hack for the problem tracked here:
+/// https://bugs.launchpad.net/mythtv/+bug/439163/
+/// http://www.kernellabs.com/blog/?p=1568
+/// Which will probably be fixed upstream by August 2011,
+/// so the hack should remain until August 2013
+#define HVR1300_HACK
+
 QString CardUtil::GetScanableCardTypes(void)
 {
     QString cardTypes = "";
@@ -357,10 +364,16 @@ QString CardUtil::ProbeDVBType(const QString &device)
     if (err < 0)
     {
         close(fd_frontend);
+#ifdef HVR1300_HACK
+        usleep(100 * 1000);
+#endif
         LOG(VB_GENERAL, LOG_ERR, "FE_GET_INFO ioctl failed (" + dvbdev + ").");
         return ret;
     }
     close(fd_frontend);
+#ifdef HVR1300_HACK
+    usleep(100 * 1000);
+#endif
 
     DTVTunerType type(info.type);
 #if HAVE_FE_CAN_2G_MODULATION
@@ -394,12 +407,18 @@ QString CardUtil::ProbeDVBFrontendName(const QString &device)
     if (err < 0)
     {
         close(fd_frontend);
+#ifdef HVR1300_HACK
+        usleep(100 * 1000);
+#endif
         return "ERROR_PROBE";
     }
 
     ret = info.name;
 
     close(fd_frontend);
+#ifdef HVR1300_HACK
+        usleep(100 * 1000);
+#endif
 #endif // USING_DVB
 
     return ret;
