diff --git a/lib/jquery.jcarousel.js b/lib/jquery.jcarousel.js
index <HASH>..<HASH> 100644
--- a/lib/jquery.jcarousel.js
+++ b/lib/jquery.jcarousel.js
@@ -14,6 +14,9 @@
  */
 
 (function($) {
+    
+    var got_load = false
+    $(window).bind('load.jcarousel', function() { got_load = true })
     /**
      * Creates a carousel for all matched elements.
      *
@@ -198,9 +201,8 @@
 
         if ($.browser.safari) {
             this.buttons(false, false);
-            $(window).bind('load.jcarousel', function() { self.setup(); });
-        } else
-            this.setup();
+        } 
+        this.wait_load_setup();
     };
 
     // Create shortcut for internal use
@@ -219,6 +221,14 @@
          * @method setup
          * @return undefined
          */
+        wait_load_setup: function() {
+          if (got_load) {
+            this.setup()
+          } else {
+            var self = this
+            $(window).bind('load.jcarousel', function() { self.setup() })
+          }
+        },
         setup: function() {
             this.first     = null;
             this.last      = null;
If the jcarousel will be initialized later then the load event on the page it does not call
the setup method on chrome/safari browser