diff --git a/bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_glossary/GlossaryModule_findTermFromPropertySheet.xml b/bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_glossary/GlossaryModule_findTermFromPropertySheet.xml
index 091eccdae9cfcd693e3cca6fbf6a128136476757..49ea04eacb2293632e333161b9dc24b8a0e11321 100644
--- a/bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_glossary/GlossaryModule_findTermFromPropertySheet.xml
+++ b/bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_glossary/GlossaryModule_findTermFromPropertySheet.xml
@@ -65,22 +65,37 @@
         </item>
         <item>
             <key> <string>_body</string> </key>
-            <value> <string>result = context.GlossaryModule_getTermDictListFromPropertySheet(property_sheet_list)\n
+            <value> <string encoding="cdata"><![CDATA[
+
+result = context.GlossaryModule_getTermDictListFromPropertySheet(property_sheet_list)\n
 \n
 if export_tsv:\n
   for i in result:\n
-    print \'\\t\'.join(map(lambda x:\'"%s"\'%x, (i[\'reference\'], i[\'language\'], i[\'business_field\'],\n
+    print \'\\t\'.join(map(lambda x:\'"%s"\'%x, (i[\'reference\'], i[\'language\'],\n
+                                            i[\'business_field\'],\n
                                             i[\'title\'], i[\'description\'],)))\n
   return printed\n
 else:\n
+  portal_catalog = context.portal_catalog\n
   for i in result:\n
+    item_list = portal_catalog(portal_type=\'Glossary Term\',\n
+                               reference=i[\'reference\'], language=i[\'language\'],\n
+                               business_field=i[\'business_field\'],\n
+                               validation_state="!=deleted")\n
+    if len(item_list)>0:\n
+      continue\n
+\n
     new_id = context.generateNewId()\n
-    context.newContent(id=new_id, portal_type=\'Glossary Term\', container=context,\n
-                       reference=i[\'reference\'], language=i[\'language\'], business_field=i[\'business_field\'],\n
+    context.newContent(id=new_id, portal_type=\'Glossary Term\',\n
+                       container=context,\n
+                       reference=i[\'reference\'], language=i[\'language\'],\n
+                       business_field=i[\'business_field\'],\n
                        title=i[\'title\'], description=i[\'description\'])\n
 \n
-context.REQUEST.RESPONSE.redirect(context.absolute_url())\n
-</string> </value>
+context.Base_redirect()\n
+
+
+]]></string> </value>
         </item>
         <item>
             <key> <string>_code</string> </key>
@@ -135,6 +150,9 @@ context.REQUEST.RESPONSE.redirect(context.absolute_url())\n
                             <string>i</string>
                             <string>map</string>
                             <string>_getitem_</string>
+                            <string>portal_catalog</string>
+                            <string>item_list</string>
+                            <string>len</string>
                             <string>new_id</string>
                           </tuple>
                         </value>
diff --git a/bt5/erp5_forge/bt/change_log b/bt5/erp5_forge/bt/change_log
index d3c999845e345580b77327ab9040f9ee70f22856..dca92420f374cab167168922c591d992f543f310 100644
--- a/bt5/erp5_forge/bt/change_log
+++ b/bt5/erp5_forge/bt/change_log
@@ -1,3 +1,6 @@
+2008-2-2 Yusei
+* Prevent  adding duplicate term.
+
 2008-2-1 Yusei
 * Fixed wrong name of scripts of  erp5_glossary. Use proxy-roled script to find terms.
 
diff --git a/bt5/erp5_forge/bt/revision b/bt5/erp5_forge/bt/revision
index 80945bc4363d59056a852d30423fbd3517241b17..66321c084ca9a642e8b308c01850cfd0351b48d1 100644
--- a/bt5/erp5_forge/bt/revision
+++ b/bt5/erp5_forge/bt/revision
@@ -1 +1 @@
-183
\ No newline at end of file
+189
\ No newline at end of file