Index: qSEOptimizer/trunk/Extensions/Install.py
===================================================================
--- qSEOptimizer/trunk/Extensions/Install.py	(revision 3713)
+++ qSEOptimizer/trunk/Extensions/Install.py	(revision 1)
@@ -111,4 +111,5 @@
                 action = ptype.getActionById('seo_properties', default=None )
 
+
             if action is None:
                 out.write( '  Added SEO Properties tab for %s\n' % ptype.getId() )
Index: qSEOptimizer/trunk/Extensions/__init__.py
===================================================================
--- qSEOptimizer/trunk/Extensions/__init__.py	(revision 3713)
+++ qSEOptimizer/trunk/Extensions/__init__.py	(revision 1)
Index: qSEOptimizer/trunk/HISTORY.txt
===================================================================
--- qSEOptimizer/trunk/HISTORY.txt	(revision 3713)
+++ qSEOptimizer/trunk/HISTORY.txt	(revision 1)
@@ -1,15 +1,2 @@
-1.6.1
-
-    * fixed breakage on getting of inexistent attribute
-    
-1.6.0
-
-    * added layer for plone 2.5.4-2 version
-    * fixed url action in qseo_properties_edit_form for plone 3.*
-
-1.5.1
-
-    * added support of additional keywords
-
 1.5.0
 
Index: qSEOptimizer/trunk/__init__.py
===================================================================
--- qSEOptimizer/trunk/__init__.py	(revision 3713)
+++ qSEOptimizer/trunk/__init__.py	(revision 1)
@@ -24,10 +24,4 @@
 except ImportError:
     _present = False
-
-def propertyItems(context):
-    """Return a list of (id,property) tuples.
-    """
-    return map(lambda i,c=context: (i['id'],getattr(c,i['id'],None)),
-                                context._properties)
 
 if _present:
@@ -74,5 +68,5 @@
         # add custom meta tags (added from qseo tab by user) for given context
         property_prefix = 'qSEO_custom_'
-        for property, value in propertyItems(context):
+        for property, value in context.propertyItems():
             idx = property.find(property_prefix)
             if idx == 0 and len(property) > len(property_prefix):
Index: qSEOptimizer/trunk/browser/configure.zcml
===================================================================
--- qSEOptimizer/trunk/browser/configure.zcml	(revision 3713)
+++ qSEOptimizer/trunk/browser/configure.zcml	(revision 1)
Index: qSEOptimizer/trunk/skins/qSEOptimizer/2.1.1/header.pt
===================================================================
--- qSEOptimizer/trunk/skins/qSEOptimizer/2.1.1/header.pt	(revision 3713)
+++ qSEOptimizer/trunk/skins/qSEOptimizer/2.1.1/header.pt	(revision 1)
@@ -41,5 +41,4 @@
           tal:attributes="name python:keyval[0];
                           content python:keyval[1];" />
-    <link rel="canonical" href="" tal:attributes="href here/qSEO_Canonical" />
 
     <metal:js metal:use-macro="here/renderAllTheScripts/macros/jsrenderer">SSS
Index: qSEOptimizer/trunk/skins/qSEOptimizer/2.1.2/header.pt
===================================================================
--- qSEOptimizer/trunk/skins/qSEOptimizer/2.1.2/header.pt	(revision 3713)
+++ qSEOptimizer/trunk/skins/qSEOptimizer/2.1.2/header.pt	(revision 1)
@@ -41,5 +41,4 @@
           tal:attributes="name python:keyval[0];
                           content python:keyval[1];" />
-    <link rel="canonical" href="" tal:attributes="href here/qSEO_Canonical" />
 
     <metal:js metal:use-macro="here/renderAllTheScripts/macros/jsrenderer">SSS
Index: qSEOptimizer/trunk/skins/qSEOptimizer/2.1.3/header.pt
===================================================================
--- qSEOptimizer/trunk/skins/qSEOptimizer/2.1.3/header.pt	(revision 3713)
+++ qSEOptimizer/trunk/skins/qSEOptimizer/2.1.3/header.pt	(revision 1)
@@ -41,5 +41,4 @@
           tal:attributes="name python:keyval[0];
                           content python:keyval[1];" />
-    <link rel="canonical" href="" tal:attributes="href here/qSEO_Canonical" />
 
     <metal:js tal:define="scripts nocall:here/renderAllTheScripts|nothing"
Index: qSEOptimizer/trunk/skins/qSEOptimizer/2.1.4/header.pt
===================================================================
--- qSEOptimizer/trunk/skins/qSEOptimizer/2.1.4/header.pt	(revision 3713)
+++ qSEOptimizer/trunk/skins/qSEOptimizer/2.1.4/header.pt	(revision 1)
@@ -41,5 +41,4 @@
           tal:attributes="name python:keyval[0];
                           content python:keyval[1];" />
-    <link rel="canonical" href="" tal:attributes="href here/qSEO_Canonical" />
 
     <metal:js tal:define="scripts nocall:here/renderAllTheScripts|nothing"
Index: qSEOptimizer/trunk/skins/qSEOptimizer/2.1/header.pt
===================================================================
--- qSEOptimizer/trunk/skins/qSEOptimizer/2.1/header.pt	(revision 3713)
+++ qSEOptimizer/trunk/skins/qSEOptimizer/2.1/header.pt	(revision 1)
@@ -40,5 +40,4 @@
           tal:attributes="name python:keyval[0];
                           content python:keyval[1];" />
-    <link rel="canonical" href="" tal:attributes="href here/qSEO_Canonical" />
 
     <metal:js metal:use-macro="here/renderAllTheScripts/macros/jsrenderer">
Index: qSEOptimizer/trunk/skins/qSEOptimizer/2.5.1/header.pt
===================================================================
--- qSEOptimizer/trunk/skins/qSEOptimizer/2.5.1/header.pt	(revision 3713)
+++ qSEOptimizer/trunk/skins/qSEOptimizer/2.5.1/header.pt	(revision 1)
@@ -41,5 +41,4 @@
           tal:attributes="name python:keyval[0];
                           content python:keyval[1];" />
-    <link rel="canonical" href="" tal:attributes="href here/qSEO_Canonical" />
 
     <metal:js tal:define="scripts nocall:here/renderAllTheScripts|nothing"
Index: qSEOptimizer/trunk/skins/qSEOptimizer/2.5.2/header.pt
===================================================================
--- qSEOptimizer/trunk/skins/qSEOptimizer/2.5.2/header.pt	(revision 3713)
+++ qSEOptimizer/trunk/skins/qSEOptimizer/2.5.2/header.pt	(revision 1)
@@ -41,5 +41,4 @@
           tal:attributes="name python:keyval[0];
                           content python:keyval[1];" />
-    <link rel="canonical" href="" tal:attributes="href here/qSEO_Canonical" />
 
     <metal:js tal:define="scripts nocall:here/renderAllTheScripts|nothing"
Index: qSEOptimizer/trunk/skins/qSEOptimizer/2.5.3-final/header.pt
===================================================================
--- qSEOptimizer/trunk/skins/qSEOptimizer/2.5.3-final/header.pt	(revision 3713)
+++ qSEOptimizer/trunk/skins/qSEOptimizer/2.5.3-final/header.pt	(revision 1)
@@ -45,6 +45,5 @@
           tal:attributes="name python:keyval[0];
                           content python:keyval[1];" />
-    <link rel="canonical" href="" tal:attributes="href here/qSEO_Canonical" />
-    
+
     <metal:js tal:define="scripts nocall:here/renderAllTheScripts|nothing"
 	      tal:condition="nocall:scripts">
Index: qSEOptimizer/trunk/skins/qSEOptimizer/2.5.4-final/header.pt
===================================================================
--- qSEOptimizer/trunk/skins/qSEOptimizer/2.5.4-final/header.pt	(revision 3713)
+++ qSEOptimizer/trunk/skins/qSEOptimizer/2.5.4-final/header.pt	(revision 1)
@@ -45,5 +45,4 @@
           tal:attributes="name python:keyval[0];
                           content python:keyval[1];" />
-    <link rel="canonical" href="" tal:attributes="href here/qSEO_Canonical" />
 
     <metal:js tal:define="scripts nocall:here/renderAllTheScripts|nothing"
Index: qSEOptimizer/trunk/skins/qSEOptimizer/2.5.5/header.pt
===================================================================
--- qSEOptimizer/trunk/skins/qSEOptimizer/2.5.5/header.pt	(revision 3713)
+++ qSEOptimizer/trunk/skins/qSEOptimizer/2.5.5/header.pt	(revision 1)
@@ -46,5 +46,4 @@
           tal:attributes="name python:keyval[0];
                           content python:keyval[1];" />
-    <link rel="canonical" href="" tal:attributes="href here/qSEO_Canonical" />
 
     <metal:js tal:define="scripts nocall:here/renderAllTheScripts|nothing"
Index: qSEOptimizer/trunk/skins/qSEOptimizer/2.5/header.pt
===================================================================
--- qSEOptimizer/trunk/skins/qSEOptimizer/2.5/header.pt	(revision 3713)
+++ qSEOptimizer/trunk/skins/qSEOptimizer/2.5/header.pt	(revision 1)
@@ -41,6 +41,4 @@
           tal:attributes="name python:keyval[0];
                           content python:keyval[1];" />
-    <link rel="canonical" href="" tal:attributes="href here/qSEO_Canonical" />
-                          
 
     <metal:js tal:define="scripts nocall:here/renderAllTheScripts|nothing"
Index: qSEOptimizer/trunk/skins/qSEOptimizer/prefs_qseo_setup_form.cpt.metadata
===================================================================
--- qSEOptimizer/trunk/skins/qSEOptimizer/prefs_qseo_setup_form.cpt.metadata	(revision 3713)
+++ qSEOptimizer/trunk/skins/qSEOptimizer/prefs_qseo_setup_form.cpt.metadata	(revision 1)
Index: qSEOptimizer/trunk/skins/qSEOptimizer/qSEO_Canonical.py
===================================================================
--- qSEOptimizer/trunk/skins/qSEOptimizer/qSEO_Canonical.py	(revision 3713)
+++ 	(revision )
@@ -1,23 +1,0 @@
-## Script (Python) "qSEO_Canonical"
-##bind container=container
-##bind context=context
-##bind namespace=
-##bind script=script
-##bind subpath=traverse_subpath
-##parameters=
-##title=Get Canonical URL
-##
-
-prop_name = 'qSEO_canonical'
-
-if context.hasProperty(prop_name) and context.getProperty(prop_name):
-    return context.getProperty(prop_name)
-else:
-    portal = context.portal_url.getPortalObject()
-    if portal.hasProperty('canonical_url'):
-        rpath = context.portal_url.getRelativeUrl(context)
-        if rpath.endswith('index_html') or rpath.endswith('front-page'):
-            rpath = rpath[:-11]
-        return portal.getProperty('canonical_url') + rpath
-    else:
-        return context.absolute_url()
Index: qSEOptimizer/trunk/skins/qSEOptimizer/qSEO_Keywords.py
===================================================================
--- qSEOptimizer/trunk/skins/qSEOptimizer/qSEO_Keywords.py	(revision 3713)
+++ qSEOptimizer/trunk/skins/qSEOptimizer/qSEO_Keywords.py	(revision 1)
@@ -10,17 +10,7 @@
 
 prop_name = 'qSEO_keywords'
-add_keywords = 'additional_keywords'
 
-keywords = []
 if context.hasProperty(prop_name):
-    keywords = context.getProperty(prop_name)
-
-pprops = context.portal_properties
-sheet = getattr(pprops, 'seo_properties', None)
-if sheet and sheet.hasProperty(add_keywords):
-    keywords += sheet.getProperty(add_keywords)
-
-if keywords:
-    return keywords
+    return context.getProperty(prop_name)
 
 accessor = 'Subject'
Index: qSEOptimizer/trunk/skins/qSEOptimizer/qseo_properties_edit.cpy
===================================================================
--- qSEOptimizer/trunk/skins/qSEOptimizer/qseo_properties_edit.cpy	(revision 3713)
+++ qSEOptimizer/trunk/skins/qSEOptimizer/qseo_properties_edit.cpy	(revision 1)
@@ -7,5 +7,5 @@
 ##bind subpath=traverse_subpath
 ##title=Update SEO Properties
-##parameters=title=None,description=None,keywords=None,html_comment=None,robots=None,distribution=None,canonical=None,title_override=0,description_override=0,keywords_override=0,html_comment_override=0,robots_override=0,distribution_override=0,custommetatags=[]
+##parameters=title=None,description=None,keywords=None,html_comment=None,robots=None,distribution=None,title_override=0,description_override=0,keywords_override=0,html_comment_override=0,robots_override=0,distribution_override=0,custommetatags=[]
 
 def setProperty(context, property, value, type='string'):
@@ -42,5 +42,4 @@
 setProperty(context, 'qSEO_robots', robots)
 setProperty(context, 'qSEO_distribution', distribution)
-setProperty(context, 'qSEO_canonical', canonical)
 
 if not title_override:        delete_list.append('qSEO_title')
@@ -53,8 +52,4 @@
 if delete_list: context.manage_delProperties(delete_list)
 
-from DateTime import DateTime
-kwargs = {'modification_date' : DateTime()}
-context.plone_utils.contentEdit(context, **kwargs)
-
 msg ='Content SEO properties have been saved.'
 try:
Index: qSEOptimizer/trunk/skins/qSEOptimizer/qseo_properties_edit_form.cpt
===================================================================
--- qSEOptimizer/trunk/skins/qSEOptimizer/qseo_properties_edit_form.cpt	(revision 3713)
+++ qSEOptimizer/trunk/skins/qSEOptimizer/qseo_properties_edit_form.cpt	(revision 1)
@@ -47,5 +47,5 @@
             action=""
             method="post"
-            tal:attributes="action string:${here/absolute_url}/${template/getId}">
+            tal:attributes="action string:${here/getId}/${template/getId}">
 
         <fieldset>
@@ -262,36 +262,5 @@
                    />
           </div>
-          <div class="field"
-               tal:define="error errors/canonical|nothing;"
-               tal:attributes="class python:test(error, 'field error', 'field')">
-            <label i18n:translate="label_canonical_tag" for="canonical">
-              Canonical URL
-            </label>
-            <div class="formHelp" i18n:translate="help_seo_canonical">
-              Specify your canonical URL.
-              If your site has identical or vastly similar content that's accessible through multiple URLs,
-              this format provides you with more control over the URL returned in search results.
-            </div>
-            <input type="checkbox"
-                   id="canonical_override"
-                   name="canonical_override"
-                   tabindex=""
-                   tal:attributes="checked python:test(here.hasProperty('qSEO_canonical'), 'on', None);
-                                   tabindex tabindex/next;"
-                   />
-            <label i18n:translate="label_override" for="canonical_override">
-              Override
-            </label><br />
-            <div tal:content="error">Validation error output</div>
-            <input type="text"
-                   id="seo_canonical"
-                   name="canonical"
-                   size="55"
-                   value=""
-                   tabindex=""
-                   tal:attributes="value request/canonical | here/qSEO_Canonical;
-                                   tabindex tabindex/next;"
-                   />
-          </div>
+
           <div class="field"
                tal:define="fieldName string:custommetatags;">
Index: qSEOptimizer/trunk/tests/testQSEOptimizer.py
===================================================================
--- qSEOptimizer/trunk/tests/testQSEOptimizer.py	(revision 3713)
+++ qSEOptimizer/trunk/tests/testQSEOptimizer.py	(revision 1)
@@ -347,36 +347,5 @@
 
 
-class TestBugs(PloneTestCase.FunctionalTestCase):
-
-    def afterSetUp(self):
-        self.qi = self.portal.portal_quickinstaller
-        self.qi.installProduct(PRODUCT)
-        #self.portal.changeSkin('Plone Default')
-
-        self.basic_auth = 'portal_manager:secret'
-        uf = self.app.acl_users
-        uf.userFolderAddUser('portal_manager', 'secret', ['Manager'], [])
-        user = uf.getUserById('portal_manager')
-        if not hasattr(user, 'aq_base'):
-            user = user.__of__(uf)
-        newSecurityManager(None, user)
-
-    def test_modification_date(self):
-        """ Modification date changing on SEO properties edit """
-        my_doc = self.portal.invokeFactory('Document', id='my_doc')
-        my_doc = self.portal['my_doc']
-
-        md_before = my_doc.modification_date
-        my_doc.qseo_properties_edit(title="New Title")
-        md_after = my_doc.modification_date
-
-        self.assertNotEqual(md_before, md_after)
-
-
-TESTS = [TestInstallation,
-         TestResponse,
-         TestExposeDCMetaTags,
-         TestBugs,
-         ]
+TESTS = [TestInstallation, TestResponse, TestExposeDCMetaTags]
 
 def test_suite():
Index: qSEOptimizer/trunk/version.txt
===================================================================
--- qSEOptimizer/trunk/version.txt	(revision 3713)
+++ qSEOptimizer/trunk/version.txt	(revision 1)
@@ -1,1 +1,1 @@
-1.7.1
+1.5.0+
