diff --git a/ckeditor.module b/ckeditor.module
index da64f3e..30733f2 100644
--- a/ckeditor.module
+++ b/ckeditor.module
@@ -306,6 +306,7 @@ function ckeditor_pre_render_text_format($element) {
     drupal_add_js(array('ckeditor' => array('input_formats' => $input_formats, 'plugins' => array())), 'setting');
     $init = TRUE;
   }
+  drupal_add_js(array('ckeditor' => array('required' => $element['#required'])), 'setting');
 
   if (isset($element['value'])) {
     if (!isset($element['format'])) {
diff --git a/includes/ckeditor.utils.js b/includes/ckeditor.utils.js
index 90ee058..0a9192b 100644
--- a/includes/ckeditor.utils.js
+++ b/includes/ckeditor.utils.js
@@ -46,6 +46,9 @@ if (typeof window.CKEDITOR_BASEPATH === 'undefined') {
     {
       configLoaded  : function(ev)
       {
+        if (ckeditor_obj.required) {
+          CKEDITOR.env.cssClass += ' required';
+        }
         Drupal.ckeditor_ver = CKEDITOR.version.split('.')[0];
         if (Drupal.ckeditor_ver == 3) {
           ev.editor.addCss(ev.editor.config.extraCss);
