diff --git a/lib/plugins/styling/script.js b/lib/plugins/styling/script.js
index 84b251eab02c332b65a19608877611c4b9d33d30..f2d550b216f1a91659de11b67fdf6c1844e2729c 100644
--- a/lib/plugins/styling/script.js
+++ b/lib/plugins/styling/script.js
@@ -2,10 +2,58 @@
 
 jQuery(function () {
 
-    var doreload = 1;
+    /**
+     * Function to reload the preview styles in the main window
+     *
+     * @param {window} target the main window
+     */
+    function applyPreview(target) {
+        // remove style
+        var $style = target.jQuery('link[rel=stylesheet][href*="lib/exe/css.php"]');
+        $style.attr('href', '');
+
+        // append the loader screen
+        $loader = target.jQuery('#plugin__styling_loader');
+        if (!$loader.length) {
+            $loader = jQuery('<div id="plugin__styling_loader">' + LANG.plugins.styling.loader + '</div>');
+            $loader.css({
+                'position':         'absolute',
+                'width':            '100%',
+                'height':           '100%',
+                'top':              0,
+                'left':             0,
+                'z-index':          5000,
+                'background-color': '#fff',
+                'opacity':          '0.7',
+                'color':            '#000',
+                'font-size':        '2.5em',
+                'text-align':       'center',
+                'line-height':      1.5,
+                'padding-top':      '2em'
+            });
+            target.jQuery('body').append($loader);
+        }
+
+        // load preview in main window (timeout works around chrome updating CSS weirdness)
+        target.setTimeout(function () {
+            var now = new Date().getTime();
+            $style.attr('href', DOKU_BASE + 'lib/exe/css.php?preview=1&tseed=' + now);
+        }, 500);
+    }
 
+    var doreload = 1;
     var $styling_plugin = jQuery('#plugin__styling');
-    if (!$styling_plugin.length) return;
+
+    // if we are not on the plugin page (either main or popup)
+    if (!$styling_plugin.length) {
+        // handle the preview cookie
+        if(DokuCookie.getValue('styling_plugin') == 1) {
+            applyPreview(window);
+        }
+        return; // nothing more to do here
+    }
+
+    /* ---- from here on we're in the popup or admin page ---- */
 
     // add the color picker
     $styling_plugin.find('.color').iris({});
@@ -18,15 +66,18 @@ jQuery(function () {
 
         $btn.click(function (e) {
             var windowFeatures = "menubar=no,location=no,resizable=yes,scrollbars=yes,status=false,width=500,height=500";
-            window.open(DOKU_BASE + 'lib/plugins/styling/popup.php', 'styling', windowFeatures)
+            window.open(DOKU_BASE + 'lib/plugins/styling/popup.php', 'styling_popup', windowFeatures);
             e.preventDefault();
         }).wrap('<p></p>');
-        return;
+        return; // we exit here if this is not the popup
     }
 
+    /* ---- from here on we're in the popup only ---- */
+
     // reload the main page on close
     window.onunload = function(e) {
         if(doreload) {
+            window.opener.DokuCookie.setValue('styling_plugin', 0);
             window.opener.document.location.reload();
         }
         return null;
@@ -37,37 +88,9 @@ jQuery(function () {
         doreload = false;
     });
 
-    // remove style
-    var $style = window.opener.jQuery('link[rel=stylesheet][href*="lib/exe/css.php"]');
-    $style.attr('href', '');
-
-    // append the loader screen
-    $loader = window.opener.jQuery('#plugin__styling_loader');
-    if (!$loader.length) {
-        $loader = jQuery('<div id="plugin__styling_loader">' + LANG.plugins.styling.loader + '</div>');
-        $loader.css({
-            'position':         'absolute',
-            'width':            '100%',
-            'height':           '100%',
-            'top':              0,
-            'left':             0,
-            'z-index':          5000,
-            'background-color': '#fff',
-            'opacity':          '0.7',
-            'color':            '#000',
-            'font-size':        '2.5em',
-            'text-align':       'center',
-            'line-height':      1.5,
-            'padding-top':       '2em'
-        });
-        window.opener.jQuery('body').append($loader);
-    }
-
-    // load preview in main window (timeout works around chrome updating CSS weirdness)
-    window.setTimeout(function() {
-        var now = new Date().getTime();
-        $style.attr('href', DOKU_BASE + 'lib/exe/css.php?preview=1&tseed=' + now);
-    }, 500);
-
+    // on first load apply preview
+    applyPreview(window.opener);
 
+    // enable the preview cookie
+    window.opener.DokuCookie.setValue('styling_plugin', 1);
 });