Index: mythtv/libs/libmythui/screensaver-x11.cpp
===================================================================
--- mythtv.orig/libs/libmythui/screensaver-x11.cpp	2008-10-30 13:24:23.000000000 -0400
+++ mythtv/libs/libmythui/screensaver-x11.cpp	2008-11-08 22:15:37.000000000 -0500
@@ -1,3 +1,4 @@
+#include <QDateTime>
 #include <QTimer>
 #include <QX11Info>
 
@@ -141,10 +142,19 @@
 
     void ResetScreenSaver()
     {
-        if (m_xscreensaverRunning)
-            myth_system("xscreensaver-command -deactivate >&- 2>&- &");
-        else
-            myth_system("gnome-screensaver-command --poke >&- 2>&- &");
+        if (IsScreenSaverRunning())
+        {
+            QDateTime current_time = QDateTime::currentDateTime ();
+            if ((!m_last_deactivated.isValid()) ||
+                (m_last_deactivated.secsTo(current_time) > 30))
+            {
+                if (m_xscreensaverRunning)
+                    myth_system("xscreensaver-command -deactivate >&- 2>&- &");
+                else if (m_gscreensaverRunning)
+                    myth_system("gnome-screensaver-command --poke >&- 2>&- &");
+                m_last_deactivated = current_time;
+            }
+        }
     }
 
   private:
@@ -170,6 +180,8 @@
     int m_timeoutInterval;
     QTimer *m_resetTimer;
 
+    QDateTime m_last_deactivated;
+
     ScreenSaverState m_state;
 };
 

