diff --git a/saveguard.js b/saveguard.js
index 9307456..8029a7e 100644
--- a/saveguard.js
+++ b/saveguard.js
@@ -27,6 +27,13 @@
     msg = Drupal.settings.saveguard.msg;
     $('input, select').change(function() {Drupal.markPageUnsaved(msg)}); // checkboxes, radio buttons and selects
     $('input, textarea').keypress(function() {Drupal.markPageUnsaved(msg)}); // textfields and textareas
+
+    if (typeof(CKEDITOR) != 'undefined' && typeof(CKEDITOR.instances) != 'undefined') {
+      for (var i in CKEDITOR.instances) {
+        CKEDITOR.instances[i].on('change', function() {Drupal.markPageUnsaved(msg)});
+      }
+    }
+
   });
 
 })(jQuery);
diff --git a/saveguard.module b/saveguard.module
index b17bbb3..a7bb87b 100644
--- a/saveguard.module
+++ b/saveguard.module
@@ -50,13 +50,15 @@ function saveguard_admin_settings() {
  *    array with form structure
  */
 function saveguard_form_alter(&$form, &$form_state, $form_id) {
-  drupal_add_js(drupal_get_path('module', 'saveguard') . '/saveguard.js');
-  static $done;
-  if (!$done) {
-    $settings['saveguard'] = array(
-      'msg' => variable_get('saveguard_message', NULL),
-    );
-    drupal_add_js($settings, array('type' => 'setting', 'scope' => 'header', 'group' => JS_DEFAULT));
-    $done = TRUE;
+  if(isset($form['#node_edit_form']) && $form['#node_edit_form'] == TRUE) {
+    drupal_add_js(drupal_get_path('module', 'saveguard') . '/saveguard.js');
+    static $done;
+    if (!$done) {
+      $settings['saveguard'] = array(
+        'msg' => variable_get('saveguard_message', NULL),
+      );
+      drupal_add_js($settings, array('type' => 'setting', 'scope' => 'header', 'group' => JS_DEFAULT));
+      $done = TRUE;
+    }
   }
 }
