Index: libs/libmythtv/channelscan/channelscan_sm.cpp
===================================================================
--- libs/libmythtv/channelscan/channelscan_sm.cpp	(révision 25579)
+++ libs/libmythtv/channelscan/channelscan_sm.cpp	(copie de travail)
@@ -359,7 +359,7 @@
             QString("Got a Program Map Table for %1")
             .arg((*current).FriendlyName) + "\n" + pmt->toString());
 
-    if (!currentTestingDecryption && pmt->IsEncrypted())
+    if (!currentTestingDecryption && pmt->IsEncrypted(GetDTVChannel()->GetSIStandard()))
         currentEncryptionStatus[pmt->ProgramNumber()] = kEncUnknown;
 }
 
@@ -1172,7 +1172,7 @@
                 info.is_opencable = true;
         }
 
-        info.is_encrypted |= pmt->IsEncrypted();
+        info.is_encrypted |= pmt->IsEncrypted(GetDTVChannel()->GetSIStandard());
         info.in_pmt = true;
     }
 
Index: libs/libmythtv/mpeg/mpegtables.cpp
===================================================================
--- libs/libmythtv/mpeg/mpegtables.cpp	(révision 25579)
+++ libs/libmythtv/mpeg/mpegtables.cpp	(copie de travail)
@@ -467,15 +472,18 @@
     return StreamID::IsAudio(stream_id);
 }
 
-/** \fn ProgramMapTable::IsEncrypted(void) const
- *  \brief Returns true iff PMT contains CA descriptor.
+/** \fn ProgramMapTable::IsEncrypted(QString sistandard) const
+ *  \brief Returns true iff PMT contains CA descriptor for a vid/aud stream.
  */
-bool ProgramMapTable::IsEncrypted(void) const
+bool ProgramMapTable::IsEncrypted(QString sistandard) const
 {
     bool encrypted = IsProgramEncrypted();
 
-    for (uint i = 0; !encrypted && i < StreamCount(); i++)
-        encrypted |= IsStreamEncrypted(i);
+    for (uint i = 0; !encrypted && i < StreamCount(); i++) {
+    /* Only check audio/video streams */
+        if (IsAudio(i,sistandard) || IsVideo(i,sistandard))
+            encrypted |= IsStreamEncrypted(i);
+    }
 
     return encrypted;
 }
Index: libs/libmythtv/mpeg/mpegtables.h
===================================================================
--- libs/libmythtv/mpeg/mpegtables.h	(révision 25579)
+++ libs/libmythtv/mpeg/mpegtables.h	(copie de travail)
@@ -604,7 +614,7 @@
     // helper methods
     bool IsVideo(uint i, QString sistandard) const;
     bool IsAudio(uint i, QString sistandard) const;
-    bool IsEncrypted(void) const;
+    bool IsEncrypted(QString sistandard) const;
     bool IsProgramEncrypted(void) const;
     bool IsStreamEncrypted(uint pid) const;
     /// Returns true iff PMT contains a still-picture video stream
Index: libs/libmythtv/dtvsignalmonitor.cpp
===================================================================
--- libs/libmythtv/dtvsignalmonitor.cpp	(révision 25579)
+++ libs/libmythtv/dtvsignalmonitor.cpp	(copie de travail)
@@ -336,8 +336,11 @@
         return; // Not the PMT we are looking for...
     }
 
-    if (pmt->IsEncrypted())
+    if (pmt->IsEncrypted(GetDTVChannel()->GetSIStandard())) {
+        VERBOSE(VB_IMPORTANT,QString("Pmt says it %1 is encrypted").arg(programNumber));
         GetStreamData()->TestDecryption(pmt);
+        
+    }
 
     // if PMT contains audio and/or video stream set as matching.
     uint hasAudio = 0;
@@ -352,7 +355,7 @@
     if ((hasVideo >= GetStreamData()->GetVideoStreamsRequired()) &&
         (hasAudio >= GetStreamData()->GetAudioStreamsRequired()))
     {
-        if (pmt->IsEncrypted() && !ignore_encrypted)
+        if (pmt->IsEncrypted(GetDTVChannel()->GetSIStandard()) && !ignore_encrypted)
             AddFlags(kDTVSigMon_WaitForCrypt);
 
         AddFlags(kDTVSigMon_PMTMatch);
