Index: dcdatagen.py
===================================================================
--- dcdatagen.py	(revision 1145)
+++ dcdatagen.py	(revision 1146)
@@ -27,4 +27,7 @@
 # Row type: an actual delay code
 DELAYCODE = 2
+
+# Row type: an actual delay code requiring a textual explanation
+DELAYCODE_EXPLANATION_REQUIRED = 3
 
 #----------------------------------------------------------------------------
@@ -702,5 +705,5 @@
                     print("msgid \"%srow%d\"" % (poPrefix, rowIndex), file=poFile)
                     generateMsgStr(poFile, columns[i])
-            elif type==DELAYCODE:
+            elif type in [DELAYCODE, DELAYCODE_EXPLANATION_REQUIRED]:
                 columnIndex = 0
                 for column in columns:
@@ -739,5 +742,5 @@
                     continue
 
-                if type==DELAYCODE:
+                if type in [DELAYCODE, DELAYCODE_EXPLANATION_REQUIRED]:
                     print("    \"%s\": \"%s\"," % \
                       (str(columns[codeIndex]).strip(), columns[meaningIndex][0].replace("\n", "")), file=dcdata)
@@ -756,7 +759,44 @@
         tableMask = 1
         for i in range(0, len(tablePrefixes)):
+            print("_%s_code2explanationRequired = {" % (tablePrefixes[i],), file=dcdata)
+
+            columnIndexes = []
+            for j in range(0, len(headings)):
+                if ( (headingFlags[j]&tableMask)==tableMask ):
+                    columnIndexes.append(j)
+
+            codeIndex = columnIndexes[0]
+            meaningIndex = columnIndexes[2]
+
+            rowIndex = 0
+            for (type, mask, columns) in rows:
+                if (mask&tableMask)!=tableMask:
+                    continue
+
+                if type in [DELAYCODE, DELAYCODE_EXPLANATION_REQUIRED]:
+                    print("    \"%s\": %s," % \
+                          (str(columns[codeIndex]).strip(),
+                           "True" if type==DELAYCODE_EXPLANATION_REQUIRED else
+                           "False"),
+                          file = dcdata)
+
+            print("}", file=dcdata)
+            print(file=dcdata)
+
+            tableMask <<= 1
+
+        print("def _isExplanationRequired(table, row):", file=dcdata)
+        print("    code = row[0].strip()", file=dcdata)
+        print("    return table[code] if code in table else false", file=dcdata)
+        print(file=dcdata)
+
+        tableMask = 1
+        for i in range(0, len(tablePrefixes)):
 
             print("_%s_data = (" % (tablePrefixes[i],), file=dcdata)
-            print("    lambda row: _extract(_%s_code2meaning, row)," % \
+            print("    (lambda row: row[0].strip(),", file=dcdata)
+            print("     lambda row: _extract(_%s_code2meaning, row)," % \
+              (tablePrefixes[i],), file=dcdata)
+            print("     lambda row: _isExplanationRequired(_%s_code2explanationRequired, row))," % \
               (tablePrefixes[i],), file=dcdata)
             print("    [", end=' ', file=dcdata)
@@ -783,5 +823,5 @@
                     print("        (CAPTION, xstr(\"%srow%d\"))," % \
                       (poPrefix, rowIndex), file=dcdata)
-                elif type==DELAYCODE:
+                elif type in [DELAYCODE, DELAYCODE_EXPLANATION_REQUIRED]:
                     print("        (DELAYCODE, [", file=dcdata)
                     for j in columnIndexes:
Index: locale/en/mlx.po
===================================================================
--- locale/en/mlx.po	(revision 1144)
+++ locale/en/mlx.po	(revision 1146)
@@ -1404,4 +1404,7 @@
 msgid "info_delay"
 msgstr "Delay codes"
+
+msgid "info_delay_explain"
+msgstr "Delay code: %s"
 
 msgid "statusbar_conn_tooltip"
Index: locale/hu/mlx.po
===================================================================
--- locale/hu/mlx.po	(revision 1144)
+++ locale/hu/mlx.po	(revision 1146)
@@ -1407,4 +1407,7 @@
 msgid "info_delay"
 msgstr "Késés kódok"
+
+msgid "info_delay_explain"
+msgstr "Késés kód: %s"
 
 msgid "statusbar_conn_tooltip"
Index: src/mlx/gui/delaycodes.py
===================================================================
--- src/mlx/gui/delaycodes.py	(revision 1035)
+++ src/mlx/gui/delaycodes.py	(revision 1146)
@@ -191,4 +191,5 @@
         self._alignments = []
         self._checkButtons = []
+        self._codesToExplain = []
 
         self._eventBox = Gtk.EventBox()
@@ -203,4 +204,16 @@
 
         self._previousWidth = 0
+
+    @property
+    def _delayCodeRows(self):
+        """Get a list of the row indexes in the delay code data table of
+        the delay codes that are enabled."""
+        rows = []
+
+        for checkButton in self._checkButtons:
+            if checkButton.get_active():
+                rows.append(checkButton.delayCodeRow)
+
+        return rows
 
     @property
@@ -210,8 +223,7 @@
 
         if self._delayCodeData is not None:
-            codeExtractor = self._delayCodeData[0]
-            for checkButton in self._checkButtons:
-                if checkButton.get_active():
-                    codes.append(codeExtractor(checkButton.delayCodeRow))
+            codeExtractor = self._delayCodeData[0][1]
+            for row in self._delayCodeRows:
+                codes.append(codeExtractor(row))
 
         return codes
@@ -337,5 +349,6 @@
     def _delayCodesChanged(self, button):
         """Called when one of the delay codes have changed."""
-        numDelayCodes = len(self.delayCodes)
+        delayCodeRows = self._delayCodeRows
+        numDelayCodes = len(delayCodeRows)
         if numDelayCodes>=4:
             for checkButton in self._checkButtons:
@@ -346,4 +359,20 @@
                 checkButton.set_sensitive(True)
 
+        codeExtractor = self._delayCodeData[0][0]
+        isExplanationRequired = self._delayCodeData[0][2]
+        codesToExplain = []
+        for row in delayCodeRows:
+            if isExplanationRequired(row):
+                code = codeExtractor(row)
+                codesToExplain.append(code)
+                if code not in self._codesToExplain:
+                    self._info.addFault("dc_" + code,
+                                        xstr("info_delay_explain") % (code,))
+
+        for code in self._codesToExplain:
+            if code not in codesToExplain:
+                self._info.clearFault("dc_" + code)
+        self._codesToExplain = codesToExplain
+
         self._info.delayCodesChanged()
 
