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 d2b8d55..0000000
--- a/ckeditor.css
+++ /dev/null
@@ -1,167 +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;
-}
-
-/*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: 30px;
-    margin-bottom: 3px;
-    width: 900px;
-}
-div.sortableList div.sortableListDiv span.sortableListSpan {
-    background-color: #F0F0EE;
-    height: 30px;
-    border-right: 1px dashed #CCC;
-    display: block;
-}
-div.sortableList div.sortableListDiv span.sortableListSpan ul {
-    width: 900px;
-    white-space: nowrap;
-    border: 1px solid #CCC;
-    list-style: none;
-    margin:0px;
-    padding: 0px 0px 0px 1px;
-    height: 30px;
-}
-div.sortableList div.sortableListDiv span.sortableListSpan ul li {
-    list-style: none;
-    cursor: move;
-    height: 18px;
-    min-width: 18px;
-    padding: 2px;
-}
-div.sortableList div.sortableListDiv span.sortableListSpan ul li.group {
-    min-width: 5px;
-    padding-left: 2px;
-}
-div.sortableList div.sortableListDiv span.sortableListSpan ul li img {
-    border: 0;
-    padding: 0;
-    margin: 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 */
\ No newline at end of file
diff --git a/ckeditor.module b/ckeditor.module
index 809b201..05e73f7 100644
--- a/ckeditor.module
+++ b/ckeditor.module
@@ -231,13 +231,6 @@ function ckeditor_get_version($main_version = FALSE) {
 }
 
 /**
- * Implementation of hook_init().
- */
-function ckeditor_init() {
-  drupal_add_css(drupal_get_path('module', 'ckeditor') . '/ckeditor.css');
-}
-
-/**
  * Implements hook_form_FORM_ID_alter() for user_profile_form().
  */
 function ckeditor_form_user_profile_form_alter(&$form, &$form_state) {
@@ -254,6 +247,9 @@ function ckeditor_form_user_profile_form_alter(&$form, &$form_state) {
  */
 function ckeditor_element_info_alter(&$types) {
   $types['text_format']['#pre_render'][] = 'ckeditor_pre_render_text_format';
+
+  // Attach the positioning CSS.
+  $types['text_format']['#attached']['css'][] = drupal_get_path('module', 'ckeditor') . '/css/ckeditor.css';
 }
 
 /**
diff --git a/css/ckeditor-rtl.css b/css/ckeditor-rtl.css
new file mode 100644
index 0000000..5053d2e
--- /dev/null
+++ b/css/ckeditor-rtl.css
@@ -0,0 +1,34 @@
+/* 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;
+}
diff --git a/css/ckeditor.admin.css b/css/ckeditor.admin.css
new file mode 100644
index 0000000..267481b
--- /dev/null
+++ b/css/ckeditor.admin.css
@@ -0,0 +1,118 @@
+/* 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: 30px;
+    margin-bottom: 3px;
+    width: 900px;
+}
+div.sortableList div.sortableListDiv span.sortableListSpan {
+    background-color: #F0F0EE;
+    height: 30px;
+    border-right: 1px dashed #CCC;
+    display: block;
+}
+div.sortableList div.sortableListDiv span.sortableListSpan ul {
+    width: 900px;
+    white-space: nowrap;
+    border: 1px solid #CCC;
+    list-style: none;
+    margin:0px;
+    padding: 0px 0px 0px 1px;
+    height: 30px;
+}
+div.sortableList div.sortableListDiv span.sortableListSpan ul li {
+    list-style: none;
+    cursor: move;
+    height: 18px;
+    min-width: 18px;
+    padding: 2px;
+}
+div.sortableList div.sortableListDiv span.sortableListSpan ul li.group {
+    min-width: 5px;
+    padding-left: 2px;
+}
+div.sortableList div.sortableListDiv span.sortableListSpan ul li img {
+    border: 0;
+    padding: 0;
+    margin: 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..225ea05
--- /dev/null
+++ b/css/ckeditor.css
@@ -0,0 +1,32 @@
+/* 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;
+}
diff --git a/css/ckeditor.editor.css b/css/ckeditor.editor.css
new file mode 100644
index 0000000..cb03e9f
--- /dev/null
+++ b/css/ckeditor.editor.css
@@ -0,0 +1,16 @@
+/* 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;
+}
diff --git a/includes/ckeditor.admin.inc b/includes/ckeditor.admin.inc
index c12d296..c2cb4b7 100644
--- a/includes/ckeditor.admin.inc
+++ b/includes/ckeditor.admin.inc
@@ -581,6 +581,13 @@ function ckeditor_admin_profile_form($form, $form_state, $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 a6f3ad5..467fe11 100644
--- a/includes/ckeditor.lib.inc
+++ b/includes/ckeditor.lib.inc
@@ -1363,6 +1363,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';
