diff --git a/data/web/diagnostics.php b/data/web/diagnostics.php
index d35c4d47..b988747d 100644
--- a/data/web/diagnostics.php
+++ b/data/web/diagnostics.php
@@ -194,25 +194,31 @@ foreach ($records as $record)
     }
   }
   
-  foreach ($currents as $current) {
-    $current['type'] == strtoupper($current['type']);
+  foreach ($currents as &$current) {
     if ($current['type'] != $record[1])
     {
       continue;
     }
     
-    elseif ($current['type'] == 'TXT' && strpos($record[0], '_dmarc.') === 0) {
+    elseif ($current['type'] == 'TXT' && strpos($current['txt'], 'v=DMARC1') === 0) {
+      $current['txt'] = str_replace(' ', '', $current['txt']);
       $state = state_optional . '<br />' . $current[$data_field[$current['type']]];
     }
     else if ($current['type'] == 'TXT' && strpos($current['txt'], 'v=spf1') === 0) {
       $state = state_optional . '<br />' . $current[$data_field[$current['type']]];
     }
+    else if ($current['type'] == 'TXT' && strpos($current['txt'], 'v=DKIM1') === 0) {
+      $current['txt'] = str_replace(' ', '', $current['txt']);
+      if ($current[$data_field[$current['type']]] == $record[2])
+        $state = state_good;
+    }
     else if ($current['type'] != 'TXT' && isset($data_field[$current['type']]) && $state != state_good) {
       $state = state_nomatch;
       if ($current[$data_field[$current['type']]] == $record[2])
         $state = state_good;
     }
   }
+  unset($current);
   
   if (isset($record[3]) && $record[3] == state_optional && ($state == state_missing || $state == state_nomatch)) {
     $state = state_optional;