Index: wysiwyg.admin.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/wysiwyg/wysiwyg.admin.inc,v
retrieving revision 1.23
diff -u -p -r1.23 wysiwyg.admin.inc
--- wysiwyg.admin.inc 7 Feb 2010 14:49:45 -0000 1.23
+++ wysiwyg.admin.inc 14 Jun 2010 13:11:35 -0000
@@ -319,6 +319,7 @@ function wysiwyg_profile_form_submit($fo
   db_query("UPDATE {wysiwyg} SET settings = :settings WHERE format = :format", array(':settings' => serialize($values), ':format' => $format));
 
   drupal_set_message(t('Wysiwyg profile for %format has been saved.', array('%format' => $input_format)));
+  cache_clear_all('wysiwyg_profiles', 'cache');
 
   $form_state['redirect'] = 'admin/config/content/wysiwyg';
 }
Index: wysiwyg.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/wysiwyg/wysiwyg.module,v
retrieving revision 1.45
diff -u -p -r1.45 wysiwyg.module
--- wysiwyg.module  20 Mar 2010 14:54:29 -0000  1.45
+++ wysiwyg.module  14 Jun 2010 13:11:35 -0000
@@ -575,12 +575,16 @@ function wysiwyg_get_css() {
 function wysiwyg_profile_load($format) {
   static $profiles;
 
-  if (!isset($profiles) || !array_key_exists($format, $profiles)) {
-    $result = db_query('SELECT format, editor, settings FROM {wysiwyg} WHERE format = :format', array(':format' => $format));
+  if ($cached = cache_get('wysywig_profiles')) {
+    $profiles = $cached->data;
+  }
+  else {
+    $result = db_query('SELECT format, editor, settings FROM {wysiwyg}');
     foreach ($result as $profile) {
       $profile->settings = unserialize($profile->settings);
-      $profiles[$profile->format] = $profile;
+      $profiles[profile->format] = $profile;
     }
+    cache_set('wysywig_profiles', $profiles)
   }
 
   return (isset($profiles[$format]) ? $profiles[$format] : FALSE);

