diff --git a/src/delegates/ImageManipulationDelegate.h b/src/delegates/ImageManipulationDelegate.h
index 7dad661..141329a 100644
--- a/src/delegates/ImageManipulationDelegate.h
+++ b/src/delegates/ImageManipulationDelegate.h
@@ -46,6 +46,10 @@
         QVariant   historySortingCategoryIcon(const CategorizedHistoryModel::SortedProxy::Categories cat) const override;
         QVariant   contactSortingCategoryIcon(const CategorizedContactModel::SortedProxy::Categories cat) const override;
         QVariant   userActionIcon(const UserActionElement& state) const override;
+        QVariant   decorationRole(const QModelIndex& index) override;
+        QVariant   decorationRole(const Call* c) override;
+        QVariant   decorationRole(const ContactMethod* cm) override;
+        QVariant   decorationRole(const Person* p) override;
 
     private:
         //Helper
diff --git a/src/delegates/ImageManipulationDelegate.mm b/src/delegates/ImageManipulationDelegate.mm
index 2f9ac02..f3a67da 100644
--- a/src/delegates/ImageManipulationDelegate.mm
+++ b/src/delegates/ImageManipulationDelegate.mm
@@ -205,4 +205,28 @@
         return QVariant();
     }
 
+    QVariant ImageManipulationDelegate::decorationRole(const QModelIndex& index)
+    {
+        Q_UNUSED(index)
+        return QVariant();
+    }
+
+    QVariant ImageManipulationDelegate::decorationRole(const Call* c)
+    {
+        Q_UNUSED(c)
+        return QVariant();
+    }
+
+    QVariant ImageManipulationDelegate::decorationRole(const ContactMethod* cm)
+    {
+        Q_UNUSED(cm)
+        return QVariant();
+    }
+
+    QVariant ImageManipulationDelegate::decorationRole(const Person* p)
+    {
+        Q_UNUSED(p)
+        return QVariant();
+    }
+
 } // namespace Interfaces
