--- channels.c.orig	2005-09-03 23:13:05.000000000 +0200
+++ channels.c	2005-09-11 12:33:57.000000000 +0200
@@ -315,7 +315,26 @@
 
 bool cChannel::SetTerrTransponderData(int Source, int Frequency, int Bandwidth, int Modulation, int Hierarchy, int CoderateH, int CoderateL, int Guard, int Transmission)
 {
+#define DEBUG_COMPARE 1
+#define USE_OLD_COMPARE 0
+
+#if DEBUG_COMPARE
+  /* --------------------------------------------------------------------------
+   * old and new code for testing/debugging
+   */
+  if (source != Source || frequency != Frequency || bandwidth != Bandwidth || modulation != Modulation || hierarchy != Hierarchy || coderateH != CoderateH || coderateL != CoderateL || guard != Guard || transmission != Transmission) {
+    dsyslog (" old check would switch channel");
+    if (source != Source || frequency != Frequency || bandwidth != Bandwidth || modulation != Modulation || hierarchy != Hierarchy || coderateH != CoderateH || (Hierarchy && coderateL != CoderateL) || guard != Guard || transmission != Transmission)
+      dsyslog (" new code would change too");
+    else
+      dsyslog (" new code would ignore this change");
+    }
+#endif
+#if USE_OLD_COMPARE
   if (source != Source || frequency != Frequency || bandwidth != Bandwidth || modulation != Modulation || hierarchy != Hierarchy || coderateH != CoderateH || coderateL != CoderateL || guard != Guard || transmission != Transmission) {
+#else
+  if (source != Source || frequency != Frequency || bandwidth != Bandwidth || modulation != Modulation || hierarchy != Hierarchy || coderateH != CoderateH || (Hierarchy && coderateL != CoderateL) || guard != Guard || transmission != Transmission) {
+#endif
      if (Number()) {
         dsyslog("changing transponder data of channel %d from %s:%d:%d:%d:%d:%d:%d:%d:%d to %s:%d:%d:%d:%d:%d:%d:%d:%d", Number(), *cSource::ToString(source), frequency, bandwidth, modulation, hierarchy, coderateH, coderateL, guard, transmission, *cSource::ToString(Source), Frequency, Bandwidth, Modulation, Hierarchy, CoderateH, CoderateL, Guard, Transmission);
         modification |= CHANNELMOD_TRANSP;
