diff --git a/include/class.dynamic_forms.php b/include/class.dynamic_forms.php
index 65777740f83f68a77afa15937e404bd5b6cfe54a..8bb94d81c792c4c407b6b0801de9a44f7dbae4a4 100644
--- a/include/class.dynamic_forms.php
+++ b/include/class.dynamic_forms.php
@@ -1179,7 +1179,8 @@ class DynamicFormEntry extends VerySimpleModel {
                 $v = $val[0];
             if ($a->value == $v)
                 continue;
-            $fields[$field->get('id')] = array($a->value, $val);
+            $before = $field->to_database($a->getValue());
+            $fields[$field->get('id')] = array($before, $val);
         }
         return $fields;
     }
diff --git a/include/class.forms.php b/include/class.forms.php
index 97b52d7cfa7da05b8acc673069607bbc54452c88..73e89287bab0c1529558fdbe59fc3977ace94105 100644
--- a/include/class.forms.php
+++ b/include/class.forms.php
@@ -1326,10 +1326,10 @@ class ChoiceField extends FormField {
     }
 
     function whatChanged($before, $after) {
-        $before = (array) $before;
-        $after = (array) $after;
-        $added = array_diff($after, $before);
-        $deleted = array_diff($before, $after);
+        $B = (array) $before;
+        $A = (array) $after;
+        $added = array_diff($A, $B);
+        $deleted = array_diff($B, $A);
         $added = array_map(array($this, 'display'), $added);
         $deleted = array_map(array($this, 'display'), $deleted);
 
@@ -1350,8 +1350,8 @@ class ChoiceField extends FormField {
         }
         else {
             $desc = sprintf(
-                __('changed to <strong>%1$s</strong>'),
-                $this->display($after));
+                __('changed from <strong>%1$s</strong> to <strong>%2$s</strong>'),
+                $this->display($before), $this->display($after));
         }
         return $desc;
     }
@@ -1734,6 +1734,8 @@ class PriorityField extends ChoiceField {
             reset($id);
             $id = key($id);
         }
+        elseif (is_array($value))
+            list($value, $id) = $value;
         elseif ($id === false)
             $id = $value;
         if ($id)
diff --git a/scp/css/scp.css b/scp/css/scp.css
index 6749ba729c88f8790accf62cb45a5297f4520196..6b2d2a33cff3c73f1c6014ed3ae13fdbb6c60634 100644
--- a/scp/css/scp.css
+++ b/scp/css/scp.css
@@ -2361,6 +2361,7 @@ td.indented {
     font-size: 1.1em;
     border: 1px solid #eee;
     vertical-align: top;
+    position: relative;
 }
 .thread-event .type-icon::after {
   content: "";