diff --git editors/tinymce.inc editors/tinymce.inc
index 12c4fd6..b594f99 100644
--- editors/tinymce.inc
+++ editors/tinymce.inc
@@ -242,7 +242,13 @@ function wysiwyg_tinymce_settings($editor, $config, $theme) {
           }
           // Allow plugins to add valid HTML elements.
           if (!empty($plugins[$plugin]['extended_valid_elements'])) {
-            $settings['extended_valid_elements'] = array_merge($settings['extended_valid_elements'], $plugins[$plugin]['extended_valid_elements']);
+            foreach($plugins[$plugin]['extended_valid_elements'] as $tag) {
+              list($tag, $allowed_attributes) = explode('[', $tag);
+              $allowed_attributes = explode('|', trim($allowed_attributes, ']'));
+              foreach($allowed_attributes as $attribute) {
+                $settings['extended_valid_elements'][$tag][$attribute] = $attribute;
+              }
+            }
           }
           // Allow plugins to add or override global configuration settings.
           if (!empty($plugins[$plugin]['options'])) {
@@ -252,7 +258,13 @@ function wysiwyg_tinymce_settings($editor, $config, $theme) {
       }
     }
     // Clean-up.
-    $settings['extended_valid_elements'] = array_unique($settings['extended_valid_elements']);
+    $valid_elements = array();
+    foreach ($settings['extended_valid_elements'] as $tag => $allowed_attributes) {
+      $attributes = in_array('*', $allowed_attributes) ? '*' : implode('|', $allowed_attributes);
+      $valid_elements[] = $tag . '[' . $attributes . ']';
+
+    }
+    $settings['extended_valid_elements'] = $valid_elements;
     if ($settings['extensions']) {
       $settings['plugins'] = array_keys($settings['extensions']);
     }
@@ -451,7 +463,7 @@ function wysiwyg_tinymce_plugins($editor) {
     'font' => array(
       'path' => $editor['library path'] . '/plugins/font',
       'buttons' => array('formatselect' => t('HTML block format'), 'fontselect' => t('Font'), 'fontsizeselect' => t('Font size'), 'styleselect' => t('Font style')),
-      'extended_valid_elements' => array('font[face|size|color|style],span[class|align|style]'),
+      'extended_valid_elements' => array('font[face|size|color|style]', 'span[class|align|style]'),
       'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/font',
       'internal' => TRUE,
     ),
