diff --git a/editors/ckeditor.inc b/editors/ckeditor.inc
index cb2a7d8..e0e6929 100644
--- a/editors/ckeditor.inc
+++ b/editors/ckeditor.inc
@@ -300,6 +300,9 @@ function wysiwyg_ckeditor_settings_form_validate_stylessets($element, &$form_sta
  *   script is loaded.
  */
 function wysiwyg_ckeditor_init($editor) {
+  // Pass Drupal's JS cache-busting string via settings along to CKEditor.
+  drupal_add_js(array('wysiwyg' => array('ckeditor' => array('timestamp' => variable_get('css_js_query_string', '0')))), 'setting');
+
   // CKEditor unconditionally searches for its library filename in SCRIPT tags
   // on the page upon loading the library in order to determine the base path to
   // itself. When JavaScript aggregation is enabled, this search fails and all
diff --git a/editors/js/ckeditor-3.0.js b/editors/js/ckeditor-3.0.js
index 07bc48a..2026aca 100644
--- a/editors/js/ckeditor-3.0.js
+++ b/editors/js/ckeditor-3.0.js
@@ -21,6 +21,12 @@ var instanceMap;
  */
 Drupal.wysiwyg.editor.init.ckeditor = function(settings, pluginInfo) {
   instanceMap = {};
+
+  // Manually set the cache-busting string to the same value as Drupal.
+  if (Drupal.settings.wysiwyg.ckeditor.hasOwnProperty('timestamp')) {
+    CKEDITOR.timestamp = Drupal.settings.wysiwyg.ckeditor.timestamp;
+  }
+
   // Nothing to do here other than register new plugins etc.
   Drupal.wysiwyg.editor.update.ckeditor(settings, pluginInfo);
 };
