Use garlic.js to autosave proposal content locally.
diff --git a/app/soc/content/js/melange.js b/app/soc/content/js/melange.js
index ccb3456..0339678 100644
--- a/app/soc/content/js/melange.js
+++ b/app/soc/content/js/melange.js
@@ -140,7 +140,14 @@
     return jQuery.extend (
       returned_tinymce_settings,
       {
-        elements: textareaids
+        elements: textareaids,
+        setup: function(editor) {
+          editor.on("change keyup", function() {
+            jQuery(tinyMCE.get()).each(function(index, element) {
+              jQuery("#" + element.id).val(element.getContent()).trigger("change.garlic");
+            });
+          });
+        }
       }
     );
   };
diff --git a/app/soc/content/js/templates/modules/gsoc/proposal/base.js b/app/soc/content/js/templates/modules/gsoc/proposal/base.js
index 27a8eaa..a67091b 100644
--- a/app/soc/content/js/templates/modules/gsoc/proposal/base.js
+++ b/app/soc/content/js/templates/modules/gsoc/proposal/base.js
@@ -14,11 +14,17 @@
  */
 melange.templates.inherit(
   function (_self, context) {
+    var tinyMCEfields = ["melange-full_content-textarea"];
     jQuery("select, input:radio, input:file, input:checkbox").uniform();
     jQuery("#abstract").counter({
       goal: 500
     });
-    tinyMCE.init(melange.tinyMceConfig(["melange-content-textarea"], "advanced"));
-    tinyMCE.init(melange.tinyMceConfig(["melange-full_content-textarea"], "advanced"));
+    jQuery("form.form-register").garlic({
+      onRetrieve: function(element, retrievedValue) {
+        if (jQuery.inArray(element[0].id, tinyMCEfields) >= 0) {
+          tinyMCE.init(melange.tinyMceConfig(tinyMCEfields, "advanced"));
+        }
+      }
+    });
   }
 );
diff --git a/app/summerofcode/content/html/summerofcode/proposal/proposal_edit.html b/app/summerofcode/content/html/summerofcode/proposal/proposal_edit.html
index 10945a2..0bc82a6 100644
--- a/app/summerofcode/content/html/summerofcode/proposal/proposal_edit.html
+++ b/app/summerofcode/content/html/summerofcode/proposal/proposal_edit.html
@@ -21,6 +21,7 @@
   [
     dep.uniform,
     dep.counter,
+    dep.garlic,
     null,
     tc("/soc/content/{{ app_version }}/js/templates/modules/gsoc/proposal/base.js")
   ]