diff --git a/mobile/src/main/java/org/openhab/habdroid/model/Widget.java b/mobile/src/main/java/org/openhab/habdroid/model/Widget.java
index 260952685307c1c008bc509476cb024d5820353d..a2c860c7c070e0bc5733695b4898d7e9572adabf 100644
--- a/mobile/src/main/java/org/openhab/habdroid/model/Widget.java
+++ b/mobile/src/main/java/org/openhab/habdroid/model/Widget.java
@@ -319,12 +319,16 @@ public abstract class Widget implements Parcelable {
         Item item = Item.updateFromEvent(
                 source.item(), eventPayload.getJSONObject("item"));
 
+        String icon = eventPayload.optString("icon", source.icon());
         String iconPath = determineOH2IconPath(item, source.type(),
-                source.icon(), iconFormat, !source.mappings().isEmpty());
+                icon, iconFormat, !source.mappings().isEmpty());
         return source.toBuilder()
                 .label(eventPayload.optString("label", source.label()))
                 .state(determineWidgetState(eventPayload.optString("state", null), item))
+                .labelColor(eventPayload.optString("labelcolor", source.labelColor()))
+                .valueColor(eventPayload.optString("valuecolor", source.valueColor()))
                 .item(item)
+                .icon(icon)
                 .iconPath(iconPath)
                 .build();
     }