diff --git a/video_filter.install b/video_filter.install
index 0d345a7..c102511 100755
--- a/video_filter.install
+++ b/video_filter.install
@@ -21,4 +21,35 @@ function video_filter_update_6201(&$sandbox) {
   db_query("DELETE FROM {variable} WHERE name LIKE 'video_filter_priority_%'");
 
   return $ret;
+}
+
+/**
+ * Move WYSIWYG settings from old videofilter (2.x) to new video_filter (3.x).
+ */
+function video_filter_update_6300(&$sandbox) {
+  $ret = array();
+
+  if (function_exists('wysiwyg_profile_load_all')) {
+    $profiles = wysiwyg_profile_load_all();
+    if (!empty($profiles)) {
+      foreach ($profiles AS $format => $profile) {
+        if (is_array($profile->settings) && !empty($profile->settings)) {
+          if (!empty($profile->settings['buttons'])) {
+            if (isset($profile->settings['buttons']['videofilter'])) {
+              // Copy old settings.
+              $profile->settings['buttons']['video_filter'] = $profile->settings['buttons']['videofilter'];
+              unset($profile->settings['buttons']['videofilter']);
+            }
+          }
+        }
+        db_query("UPDATE {wysiwyg} SET settings = '%s' WHERE format = %d", serialize($profile->settings), $format);
+        $ret[] = array(
+          'success' => TRUE,
+          'query' => strtr('Wysiwyg profile %profile updated with new Video Filter settings for input format %format.', array('%profile' => check_plain($profile->name), '%format' => check_plain($format))),
+        );
+      }
+    }
+  }
+
+  return $ret;
 }
\ No newline at end of file
