diff --git a/ckeditor-rtl.css b/ckeditor-rtl.css
deleted file mode 100644
index 3974a82..0000000
--- a/ckeditor-rtl.css
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Indent & Justify classes */
-
-.rteindent1 {
-  margin-right: 40px;
-  margin-left: 0;
-}
-.rteindent2 {
-  margin-right: 80px;
-  margin-left: 0;
-}
-.rteindent3 {
-  margin-right: 120px;
-  margin-left: 0;
-}
-.rteindent4 {
-  margin-right: 160px;
-  margin-left: 0;
-}
-.rteindent1[dir=ltr] {
-  margin-left: 40px;
-  margin-right: 0;
-}
-.rteindent2[dir=ltr] {
-  margin-left: 80px;
-  margin-right: 0;
-}
-.rteindent3[dir=ltr] {
-  margin-left: 120px;
-  margin-right: 0;
-}
-.rteindent4[dir=ltr] {
-  margin-left: 160px;
-  margin-right: 0;
-}
\ No newline at end of file
diff --git a/ckeditor.css b/ckeditor.css
deleted file mode 100644
index cceb8be..0000000
--- a/ckeditor.css
+++ /dev/null
@@ -1,186 +0,0 @@
-/* Indent & Justify classes */
-
-.rteindent1 {
-    margin-left: 40px;
-}
-.rteindent2 {
-    margin-left: 80px;
-}
-.rteindent3 {
-    margin-left: 120px;
-}
-.rteindent4 {
-    margin-left: 160px;
-}
-.rteleft {
-    text-align: left;
-}
-.rteright {
-    text-align: right;
-}
-.rtecenter {
-    text-align: center;
-}
-.rtejustify {
-    text-align: justify;
-}
-.ibimage_left {
-    float: left;
-}
-.ibimage_right {
-    float: right;
-}
-
-/* CKEditor padding in IE */
-table.cke_editor fieldset {
-    padding: 0 !important;
-}
-/* hack with ie and garland editing area size fix - [#733512] */
-.cke_editor{
-    display: table !important;
-}
-.cke_editor,#ie#bug {
-    display: inline-table !important;
-}
-/* Fix table border for Drupal's Seven theme - [#1020612] */
-.cke_dialog tr td:last-child {
-    border-right: 0;
-}
-/* Panels in IE11 [#2244835] */
-.cke.cke_chrome {
-    visibility: inherit;
-}
-.cke.cke_panel {
-    visibility: visible;
-}
-/*toolbar Drag & Drop*/
-form#ckeditor-admin-profile-form textarea#edit-toolbar {
-    display: none;
-}
-form#ckeditor-admin-profile-form #edit-toolbar + .grippie {
-    display: none;
-}
-div.sortableList {
-    cursor: n-resize;
-}
-div.widthMarker {
-    height: 20px;
-    border-top: 1px dashed #CCC;
-    margin: 10px 0px 0px 1px;
-    padding-left: 1px;
-    text-align: center;
-}
-div.sortableList.group {
-    margin: 20px 0px 0px 0px;
-}
-div.sortableList div.sortableListDiv {
-    height: 34px;
-    margin-bottom: 3px;
-    width: 930px;
-}
-div.sortableList div.sortableListDiv span.sortableListSpan {
-    background-color: #F0F0EE;
-    height: 34px;
-    border-right: 1px dashed #CCC;
-    display: block;
-}
-div.sortableList div.sortableListDiv span.sortableListSpan ul {
-    width: 930px;
-    white-space: nowrap;
-    border: 1px solid #CCC;
-    list-style: none;
-    margin:0px;
-    padding: 0px 0px 0px 1px;
-    height: 34px;
-}
-div.sortableList div.sortableListDiv span.sortableListSpan ul li {
-    list-style: none;
-    cursor: move;
-    height: 18px;
-    min-width: 18px;
-    padding: 4px;
-}
-div.sortableList div.sortableListDiv span.sortableListSpan ul li.group {
-    min-width: 5px;
-    padding-left: 4px;
-}
-div.sortableList div.sortableListDiv span.sortableListSpan ul li.spacer img {
-    margin-bottom: 4px;
-}
-div.sortableList div.sortableListDiv span.sortableListSpan ul li img {
-    border: 0;
-    padding: 0;
-    margin: 0
-}
-fieldset#edit-appearance li.sortableItem img {
-    max-height:24px;
-    width:auto;
-}
-div.sortableList #Format img, div.sortableList #Font img, div.sortableList #Styles img, div.sortableList #FontSize img {
-    max-height:30px !important;
-}
-div.sortableList #Format, div.sortableList #Font, div.sortableList #Styles, div.sortableList #FontSize {
-    padding:0;
-}
-li.sortableItem {
-    position: relative;
-    float: left;
-    margin: 3px 1px 1px 0px;
-    border: 1px solid #CCC;
-    background-color: #F0F0EE;
-    z-index: 99;
-}
-
-#security-filters .filter-text-formats {
-    float: left;
-    clear: both;
-    width: 15%;
-    font-size: 11px;
-    font-weight: bold;
-    padding: 10px 0px;
-}
-
-#security-filters .filter-text-formats .filter-text-format-status {
-    float: left;
-    padding-right: 20px;
-}
-
-#security-filters .filter-text-formats .enabled {
-    background: url(images/tick.png) no-repeat right center;
-}
-
-#security-filters .filter-text-formats .disabled {
-    background: url(images/delete.png) no-repeat right center;
-}
-
-#security-filters .filter-info {
-    float: left;
-    width: 85%;
-}
-
-#security-filters .fieldset-legend {
-    background: none;
-    padding-left: 10px;
-}
-
-#security-filters .fieldset-legend a {
-    font-weight: normal;
-    font-size: 10px;
-    padding-left: 5px;
-}
-
-#security-filters .filter-wrapper {
-    clear: both;
-    float: left;
-    border-bottom: 1px solid #CCCCCC;
-    width: 100%;
-}
-
-/* Fix for fieldset for-edit-apperance in Firefox*/
-fieldset#edit-appearance div#groupLayout, div#allButtons  {
-  border: 0;
-  padding: 0 0 0 0;
-  margin: 1em 0;
-  overflow: auto;
-}
-/*  end of toolbar Drag & Drop */
diff --git a/ckeditor.module b/ckeditor.module
index d9ffb1a..ea6bb8a 100644
--- a/ckeditor.module
+++ b/ckeditor.module
@@ -241,10 +241,16 @@ function ckeditor_get_version($main_version = FALSE) {
 }
 
 /**
- * Implementation of hook_init().
+ * Implements hook_page_build().
  */
-function ckeditor_init() {
-  drupal_add_css(drupal_get_path('module', 'ckeditor') . '/ckeditor.css');
+function ckeditor_page_build(&$page) {
+  // Add our CSS file that adds common needed classes, such as align-left,
+  // align-right, underline, indent, etc.
+  $page['page_bottom']['ckeditor']['#attached']['css'] = array(
+    drupal_get_path('module', 'ckeditor') . '/css/ckeditor.css' => array(
+      'every_page' => TRUE,
+    ),
+  );
 }
 
 /**
diff --git a/css/ckeditor-rtl.css b/css/ckeditor-rtl.css
new file mode 100644
index 0000000..0f6c28b
--- /dev/null
+++ b/css/ckeditor-rtl.css
@@ -0,0 +1,34 @@
+/* General RTL indentation & positioning classes */
+
+.rteindent1 {
+  margin-right: 40px;
+  margin-left: 0;
+}
+.rteindent2 {
+  margin-right: 80px;
+  margin-left: 0;
+}
+.rteindent3 {
+  margin-right: 120px;
+  margin-left: 0;
+}
+.rteindent4 {
+  margin-right: 160px;
+  margin-left: 0;
+}
+.rteindent1[dir=ltr] {
+  margin-left: 40px;
+  margin-right: 0;
+}
+.rteindent2[dir=ltr] {
+  margin-left: 80px;
+  margin-right: 0;
+}
+.rteindent3[dir=ltr] {
+  margin-left: 120px;
+  margin-right: 0;
+}
+.rteindent4[dir=ltr] {
+  margin-left: 160px;
+  margin-right: 0;
+}
diff --git a/css/ckeditor.admin.css b/css/ckeditor.admin.css
new file mode 100644
index 0000000..185d083
--- /dev/null
+++ b/css/ckeditor.admin.css
@@ -0,0 +1,132 @@
+/* Administrative classes */
+
+/* Toolbar Drag & Drop */
+form#ckeditor-admin-profile-form textarea#edit-toolbar {
+    display: none;
+}
+form#ckeditor-admin-profile-form #edit-toolbar + .grippie {
+    display: none;
+}
+div.sortableList {
+    cursor: n-resize;
+}
+div.widthMarker {
+    height: 20px;
+    border-top: 1px dashed #CCC;
+    margin: 10px 0px 0px 1px;
+    padding-left: 1px;
+    text-align: center;
+}
+div.sortableList.group {
+    margin: 20px 0px 0px 0px;
+}
+div.sortableList div.sortableListDiv {
+    height: 34px;
+    margin-bottom: 3px;
+    width: 930px;
+}
+div.sortableList div.sortableListDiv span.sortableListSpan {
+    background-color: #F0F0EE;
+    height: 34px;
+    border-right: 1px dashed #CCC;
+    display: block;
+}
+div.sortableList div.sortableListDiv span.sortableListSpan ul {
+    width: 930px;
+    white-space: nowrap;
+    border: 1px solid #CCC;
+    list-style: none;
+    margin:0px;
+    padding: 0px 0px 0px 1px;
+    height: 34px;
+}
+div.sortableList div.sortableListDiv span.sortableListSpan ul li {
+    list-style: none;
+    cursor: move;
+    height: 18px;
+    min-width: 18px;
+    padding: 4px;
+}
+div.sortableList div.sortableListDiv span.sortableListSpan ul li.group {
+    min-width: 5px;
+    padding-left: 4px;
+}
+div.sortableList div.sortableListDiv span.sortableListSpan ul li.spacer img {
+    margin-bottom: 4px;
+}
+div.sortableList div.sortableListDiv span.sortableListSpan ul li img {
+    border: 0;
+    padding: 0;
+    margin: 0
+}
+fieldset#edit-appearance li.sortableItem img {
+    max-height:24px;
+    width:auto;
+}
+div.sortableList #Format img, div.sortableList #Font img, div.sortableList #Styles img, div.sortableList #FontSize img {
+    max-height:30px !important;
+}
+div.sortableList #Format, div.sortableList #Font, div.sortableList #Styles, div.sortableList #FontSize {
+    padding:0;
+}
+li.sortableItem {
+    position: relative;
+    float: left;
+    margin: 3px 1px 1px 0px;
+    border: 1px solid #CCC;
+    background-color: #F0F0EE;
+    z-index: 99;
+}
+
+#security-filters .filter-text-formats {
+    float: left;
+    clear: both;
+    width: 15%;
+    font-size: 11px;
+    font-weight: bold;
+    padding: 10px 0px;
+}
+
+#security-filters .filter-text-formats .filter-text-format-status {
+    float: left;
+    padding-right: 20px;
+}
+
+#security-filters .filter-text-formats .enabled {
+    background: url(images/tick.png) no-repeat right center;
+}
+
+#security-filters .filter-text-formats .disabled {
+    background: url(images/delete.png) no-repeat right center;
+}
+
+#security-filters .filter-info {
+    float: left;
+    width: 85%;
+}
+
+#security-filters .fieldset-legend {
+    background: none;
+    padding-left: 10px;
+}
+
+#security-filters .fieldset-legend a {
+    font-weight: normal;
+    font-size: 10px;
+    padding-left: 5px;
+}
+
+#security-filters .filter-wrapper {
+    clear: both;
+    float: left;
+    border-bottom: 1px solid #CCCCCC;
+    width: 100%;
+}
+
+/* Fix for fieldset for-edit-apperance in Firefox*/
+fieldset#edit-appearance div#groupLayout, div#allButtons  {
+  border: 0;
+  padding: 0 0 0 0;
+  margin: 1em 0;
+  overflow: auto;
+}
diff --git a/css/ckeditor.css b/css/ckeditor.css
new file mode 100644
index 0000000..bff4cf2
--- /dev/null
+++ b/css/ckeditor.css
@@ -0,0 +1,32 @@
+/* General indentation & positioning classes */
+
+.rteindent1 {
+    margin-left: 40px;
+}
+.rteindent2 {
+    margin-left: 80px;
+}
+.rteindent3 {
+    margin-left: 120px;
+}
+.rteindent4 {
+    margin-left: 160px;
+}
+.rteleft {
+    text-align: left;
+}
+.rteright {
+    text-align: right;
+}
+.rtecenter {
+    text-align: center;
+}
+.rtejustify {
+    text-align: justify;
+}
+.ibimage_left {
+    float: left;
+}
+.ibimage_right {
+    float: right;
+}
diff --git a/css/ckeditor.editor.css b/css/ckeditor.editor.css
new file mode 100644
index 0000000..c8aebd8
--- /dev/null
+++ b/css/ckeditor.editor.css
@@ -0,0 +1,24 @@
+/* Editor classes */
+
+/* CKEditor padding in IE */
+table.cke_editor fieldset {
+    padding: 0 !important;
+}
+/* hack with ie and garland editing area size fix - [#733512] */
+.cke_editor{
+    display: table !important;
+}
+.cke_editor,#ie#bug {
+    display: inline-table !important;
+}
+/* Fix table border for Drupal's Seven theme - [#1020612] */
+.cke_dialog tr td:last-child {
+    border-right: 0;
+}
+/* Panels in IE11 [#2244835] */
+.cke.cke_chrome {
+    visibility: inherit;
+}
+.cke.cke_panel {
+    visibility: visible;
+}
diff --git a/includes/ckeditor.admin.inc b/includes/ckeditor.admin.inc
index d452f59..ba5dbbf 100644
--- a/includes/ckeditor.admin.inc
+++ b/includes/ckeditor.admin.inc
@@ -589,6 +589,13 @@ function ckeditor_admin_profile_form($form, $form_state, $task, $profile = NULL)
 
   $lang_options = ckeditor_load_lang_options();
 
+  // Attach the administration CSS.
+  $form['#attached'] = array(
+    'css' => array(
+      drupal_get_path('module', 'ckeditor') . '/css/ckeditor.admin.css',
+    ),
+  );
+
   $form['basic'] = array(
     '#type' => 'fieldset',
     '#title' => t('Basic setup'),
diff --git a/includes/ckeditor.lib.inc b/includes/ckeditor.lib.inc
index 8372ab8..effe074 100644
--- a/includes/ckeditor.lib.inc
+++ b/includes/ckeditor.lib.inc
@@ -1245,8 +1245,8 @@ function ckeditor_profile_settings_compile($global_profile, $profile) {
           $css_files[] = $host . $themepath . 'style.css' . $query_string;
         }
       }
-      if (file_exists($module_drupal_local_path . '/ckeditor.css')) {
-        $css_files[] = $module_drupal_path . '/ckeditor.css' . $query_string;
+      if (file_exists($module_drupal_local_path . '/css/ckeditor.css')) {
+        $css_files[] = $module_drupal_path . '/css/ckeditor.css' . $query_string;
       }
       if (file_exists($themepath . 'ckeditor.css')) {
         $css_files[] = $host . $themepath . 'ckeditor.css' . $query_string;
@@ -1254,11 +1254,11 @@ function ckeditor_profile_settings_compile($global_profile, $profile) {
       break;
 
     case 'self':
-      if (file_exists($module_drupal_local_path . '/ckeditor.css')) {
-        $css_files[] = $module_drupal_path . '/ckeditor.css' . $query_string;
+      if (file_exists($module_drupal_local_path . '/css/ckeditor.css')) {
+        $css_files[] = $module_drupal_path . '/css/ckeditor.css' . $query_string;
         if (defined('LANGUAGE_RTL') && $language->direction == LANGUAGE_RTL) {
-          if (file_exists($module_drupal_local_path . '/ckeditor-rtl.css')) {
-            $css_files[] = $module_drupal_path . '/ckeditor-rtl.css' . $query_string;
+          if (file_exists($module_drupal_local_path . '/css/ckeditor-rtl.css')) {
+            $css_files[] = $module_drupal_path . '/css/ckeditor-rtl.css' . $query_string;
           }
         }
       }
@@ -1269,11 +1269,11 @@ function ckeditor_profile_settings_compile($global_profile, $profile) {
       break;
 
     case 'none':
-      if (file_exists($module_drupal_local_path . '/ckeditor.css')) {
-        $css_files[] = $module_drupal_path . '/ckeditor.css' . $query_string;
+      if (file_exists($module_drupal_local_path . '/css/ckeditor.css')) {
+        $css_files[] = $module_drupal_path . '/css/ckeditor.css' . $query_string;
         if (defined('LANGUAGE_RTL') && $language->direction == LANGUAGE_RTL) {
-          if (file_exists($module_drupal_local_path . '/ckeditor-rtl.css')) {
-            $css_files[] = $module_drupal_path . '/ckeditor-rtl.css' . $query_string;
+          if (file_exists($module_drupal_local_path . '/css/ckeditor-rtl.css')) {
+            $css_files[] = $module_drupal_path . '/css/ckeditor-rtl.css' . $query_string;
           }
         }
       }
@@ -1402,6 +1402,9 @@ function ckeditor_load_by_field($field, $format, $show_toggle = TRUE, $add_field
     return $field;
   }
 
+  // Attach the editor css.
+  $field['#attached']['css'][] = drupal_get_path('module', 'ckeditor') . '/css/ckeditor.editor.css';
+
   if ($settings) {
     $textarea_id = $field['#id'];
     $class[] = 'ckeditor-mod';
