diff --git a/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/BaseType_view.xml b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/BaseType_view.xml
index 6c0301288bd29305f579261f14ab538c3e5f13d1..d82add13062da9cb3f44d7ed7281d54935308269 100644
--- a/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/BaseType_view.xml
+++ b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/BaseType_view.xml
@@ -105,6 +105,7 @@
                         <string>my_type_acquire_local_role</string>
                         <string>my_type_property_sheet_list</string>
                         <string>my_type_base_category_list</string>
+                        <string>my_type_icon</string>
                       </list>
                     </value>
                 </item>
diff --git a/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/BaseType_view/my_type_icon.xml b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/BaseType_view/my_type_icon.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8fc2e79d6dc65c41a73c5ee51f98bc110db84745
--- /dev/null
+++ b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/BaseType_view/my_type_icon.xml
@@ -0,0 +1,99 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>delegated_list</string> </key>
+            <value>
+              <list>
+                <string>title</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>my_type_icon</string> </value>
+        </item>
+        <item>
+            <key> <string>message_values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>external_validator_failed</string> </key>
+                    <value> <string>The input failed the external validator.</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string>my_string_field</string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string>Base_viewFieldLibrary</string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string>Click to edit the target</string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string>Icon</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/Base_showFoundText.xml b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/Base_showFoundText.xml
index 54e8359b37f1a5a9fd7b9d2ed2fe411ca9262335..6cca949dfb82b6e685dfa8ea2ff63f49803b5ad5 100644
--- a/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/Base_showFoundText.xml
+++ b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/Base_showFoundText.xml
@@ -63,6 +63,7 @@
 """\n
 from Products.ERP5.Document.Document import NotConvertedError\n
 \n
+encoding = \'utf-8\'\n
 is_gadget_mode = context.REQUEST.get(\'is_gadget_mode\', 0)\n
 \n
 if is_gadget_mode:\n
@@ -73,9 +74,9 @@ if is_gadget_mode:\n
 def getRandomDocumentTextExcerpt(document_text):\n
   # try to get somewhat arbitrary choice of searchable attrs\n
   if isinstance(document_text, str) and document_text!=\'\':\n
-    document_text = document_text.decode(\'utf-8\', \'ignore\')\n
+    document_text = document_text.decode(encoding, \'ignore\')\n
     start = min(len(document_text) - 300, 200)\n
-    return \'... %s ...\' %document_text[start:start + max_text_length]\n
+    return \'... %s ...\' %document_text[start:start + max_text_length].encode(encoding)\n
   else:\n
     return \'\'\n
 \n
@@ -124,8 +125,8 @@ else:\n
   result = \' \'.join(map(str, found_text_fragments))\n
 \n
   # Document may contains charactors which utf8 codec cannot decode.\n
-  unicode_result = result.decode(\'utf-8\', \'ignore\')\n
-  result = unicode_result.encode(\'utf-8\')\n
+  unicode_result = result.decode(encoding, \'ignore\')\n
+  result = unicode_result.encode(encoding)\n
 \n
   return result\n
 
@@ -172,6 +173,7 @@ else:\n
                             <string>max_text_length</string>
                             <string>Products.ERP5.Document.Document</string>
                             <string>NotConvertedError</string>
+                            <string>encoding</string>
                             <string>_getattr_</string>
                             <string>context</string>
                             <string>is_gadget_mode</string>
diff --git a/product/ERP5/bootstrap/erp5_core/bt/revision b/product/ERP5/bootstrap/erp5_core/bt/revision
index 7dbc594e58c81a3095720631bd744f85d6903eab..1f24d348d366423db14503148ace4f8a10ec1d13 100644
--- a/product/ERP5/bootstrap/erp5_core/bt/revision
+++ b/product/ERP5/bootstrap/erp5_core/bt/revision
@@ -1 +1 @@
-1596
\ No newline at end of file
+1597
\ No newline at end of file