Index: /quintagroup.seoptimizer/trunk/quintagroup/seoptimizer/browser/templates/seo_controlpanel.pt
===================================================================
--- /quintagroup.seoptimizer/trunk/quintagroup/seoptimizer/browser/templates/seo_controlpanel.pt	(revision 1599)
+++ /quintagroup.seoptimizer/trunk/quintagroup/seoptimizer/browser/templates/seo_controlpanel.pt	(revision 1600)
@@ -100,5 +100,5 @@
                                       checked python:view.select_settings_use_keywords_sg()==1"/>
               <label for=""
-                     tal:attributes="for string:sg1">Override Subject by global seo keywords</label>
+                     tal:attributes="for string:sg1">Subject overrides global seo keywords</label>
               <br/>
               <input  type="radio"
@@ -108,5 +108,5 @@
                                       checked python:view.select_settings_use_keywords_sg()==2"/>
               <label for=""
-                     tal:attributes="for string:sg2">Override global seo keywords by Subject</label>
+                     tal:attributes="for string:sg2">Global seo keywords override Subject</label>
               <br/>
               <input  type="radio"
@@ -116,5 +116,5 @@
                                       checked python:view.select_settings_use_keywords_sg()==3"/>
               <label for=""
-                     tal:attributes="for string:sg3">Merge global and local seo keywords</label>
+                     tal:attributes="for string:sg3">Merge Subject and global seo keywords</label>
           </div>
 
@@ -132,5 +132,5 @@
                                       checked python:view.select_settings_use_keywords_lg()==1"/>
               <label for=""
-                     tal:attributes="for string:lg1">Override global by local seo keywords</label>
+                     tal:attributes="for string:lg1">Global override local seo keywords</label>
               <br/>
               <input  type="radio"
Index: /quintagroup.seoptimizer/trunk/quintagroup/seoptimizer/browser/views.py
===================================================================
--- /quintagroup.seoptimizer/trunk/quintagroup/seoptimizer/browser/views.py	(revision 1599)
+++ /quintagroup.seoptimizer/trunk/quintagroup/seoptimizer/browser/views.py	(revision 1600)
@@ -145,19 +145,9 @@
         """
         prop_name = 'qSEO_keywords'
-        add_keywords = 'additional_keywords'
         accessor = 'Subject'
         context = aq_inner(self.context)
         keywords = Set([])
-        if context.hasProperty(prop_name):
-            keywords = Set(context.getProperty(prop_name))
-
         pprops = getToolByName(context, 'portal_properties')
         sheet = getattr(pprops, 'seo_properties', None)
-        if sheet and sheet.hasProperty(add_keywords):
-            keywords = keywords | Set(sheet.getProperty(add_keywords))
-
-        if keywords:
-            return keywords
-
         method = getattr(context, accessor, None)
         if not callable(method):
@@ -166,9 +156,38 @@
         # Catch AttributeErrors raised by some AT applications
         try:
-            value = method()
+            subject = Set(method())
         except AttributeError:
-            value = None
-
-        return value
+            subject = keywords
+
+        if sheet:
+          settings_use_keywords_sg = sheet.getProperty('settings_use_keywords_sg')
+          settings_use_keywords_lg = sheet.getProperty('settings_use_keywords_lg')
+          global_keywords = Set(sheet.getProperty('additional_keywords', None))
+          local_keywords = Set(context.getProperty(prop_name, None))
+          # Subject overrides global seo keywords and global overrides local seo keywords
+          if [settings_use_keywords_sg, settings_use_keywords_lg] == [1, 1]:
+              keywords = subject
+          # Subject overrides global seo keywords and merge global and local seo keywords
+          elif [settings_use_keywords_sg, settings_use_keywords_lg] == [1, 2]:
+              keywords = subject | local_keywords
+          # Global seo keywords overrides Subject and global overrides local seo keywords
+          elif [settings_use_keywords_sg, settings_use_keywords_lg] == [2, 1]:
+              #import pdb;pdb.set_trace()
+              keywords = global_keywords
+          # Global seo keywords overrides Subject and merge global and local seo keywords
+          elif [settings_use_keywords_sg, settings_use_keywords_lg] == [2, 2]:
+              keywords = global_keywords | local_keywords
+          # Merge Subject and global seo keywords and global overrides local seo keywords
+          elif [settings_use_keywords_sg, settings_use_keywords_lg] == [3, 1]:
+              keywords = subject | global_keywords
+          # Merge Subject and global seo keywords and merge global and local seo keywords
+          elif [settings_use_keywords_sg, settings_use_keywords_lg] == [3, 2]:
+              keywords = subject | global_keywords | local_keywords
+          else:
+              keywords = subject
+        else:
+            keywords = subject
+
+        return keywords
 
     def seo_canonical( self ):
