Author: Mattia Monga <monga@debian.org>
--- a/tkrat/folder.tcl
+++ b/tkrat/folder.tcl
@@ -282,7 +282,7 @@
     set b($m,[$m index end]) undelete_group
     # Disable in drafts...
     $m add command -label $t(mark_as_unread) -command \
-        "SetFlag $handler seem 0 \
+        "SetFlag $handler seen 0 \
                          \[\$${handler}(folder_handler) flagged flagged 1\]"
     set b($m,[$m index end]) mark_as_unread
 
@@ -1180,6 +1180,7 @@
             lappend fh(uids) $uid
             incr fh(num_messages)
         }
+	ColorFlag $handler $folder_index
         incr folder_index
     }
     $fh(message_list) delete end-1c
@@ -1206,12 +1207,52 @@
     set line [expr {$index+1}]
     $fh(message_list) configure -state normal
     set tags [$fh(message_list) tag names $line.0]
+
+
     $fh(message_list) delete $line.0 "$line.0 lineend"
     $fh(message_list) insert $line.0 [format %-256s \
 	    [[$fh(folder_handler) get $fi] list $option(list_format)]] $tags
+    ColorFlag $handler $index
     $fh(message_list) configure -state disabled
 }
 
+# ColorFlag --
+#
+# Tag (and color) message lines according to mailbox flags
+#
+# Arguments:
+# handler -	The handler which identifies the folder window
+# index   -	Index of the entry to refresh (list index)
+
+
+proc ColorFlag {handler index} {
+    upvar \#0 $handler fh
+    global option
+
+    set fi $fh(mapping,$index)
+    set line [expr {$index+1}]
+
+    # inverse order of priority
+    foreach flag {seen answered flagged deleted} {
+	if {1 == [$fh(folder_handler) getFlag $fi $flag]} {
+	    $fh(message_list) tag add yes$flag $line.0 "$line.0 lineend"
+	    $fh(message_list) tag remove no$flag $line.0 "$line.0 lineend"
+	} else {
+	    $fh(message_list) tag add no$flag $line.0 "$line.0 lineend"
+	    $fh(message_list) tag remove yes$flag $line.0 "$line.0 lineend"
+	}
+	$fh(message_list) tag raise yes$flag 
+	$fh(message_list) tag configure yes$flag \
+	    -foreground $option(${flag}_color)
+	$fh(message_list) tag configure no$flag \
+	    -foreground $option(new_color)
+
+    }
+}
+
+
+
+
 # FolderSelect --
 #
 # Handle the selection of a message
--- a/tkrat/options.tcl
+++ b/tkrat/options.tcl
@@ -320,6 +320,23 @@
     # The color set
     set option(color_set) {\#dde3eb black white black}
 
+    # Color of new messages
+    set option(new_color) DarkSeaGreen
+
+    # Color of seen messages
+    set option(seen_color) black
+
+    # Color of flagged messages
+    set option(flagged_color) red
+
+    # Color of answered messages
+    set option(answered_color) blue
+
+    # Color of deleted messages
+    set option(deleted_color) yellow
+
+
+
     # Which icon to set {normal small none}
     set option(icon) normal
 
