diff --git a/dist b/dist
index 5da36f07cebfdcad53b845c0c3924c22f4894f2f..08f0702fcde82f22663752d3b8e31803f819c094 160000
--- a/dist
+++ b/dist
@@ -1 +1 @@
-Subproject commit 5da36f07cebfdcad53b845c0c3924c22f4894f2f
+Subproject commit 08f0702fcde82f22663752d3b8e31803f819c094
diff --git a/src/Transaction.js b/src/Transaction.js
index 1c5b6e22ddcf2fcaa2e4cd0a0e1166f10c454d51..57e14fed39c545d79f3fb1f7165321c2953b2ee6 100644
--- a/src/Transaction.js
+++ b/src/Transaction.js
@@ -550,7 +550,7 @@ module.exports = function (Y/* :any */) {
     }
     * addOperation (op) {
       yield* this.os.put(op)
-      if (!this.store.y.connector.isDisconnected() && this.store.forwardAppliedOperations) {
+      if (!this.store.y.connector.isDisconnected() && this.store.forwardAppliedOperations && op.id[0] !== '_') {
         // is connected, and this is not going to be send in addOperation
         this.store.y.connector.broadcast({
           type: 'update',
diff --git a/src/y.js b/src/y.js
index b2d596f7e4eb9e89c79dd8900f4d5f56d80eb01e..17b5595bb009e846d881400de0e615420fb0ecc3 100644
--- a/src/y.js
+++ b/src/y.js
@@ -25,30 +25,26 @@ function requestModules (modules) {
   // determine if this module was compiled for es5 or es6 (y.js vs. y.es6)
   // if Insert.execute is a Function, then it isnt a generator..
   // then load the es5(.js) files..
-  var extention = Y.Struct.Insert.execute.constructor === Function ? '.js' : '.es6'
+  var extention = typeof regeneratorRuntime !== 'undefined' ? '.js' : '.es6'
   var promises = []
   for (var i = 0; i < modules.length; i++) {
     var modulename = 'y-' + modules[i].toLowerCase()
     if (Y[modules[i]] == null) {
       if (requiringModules[modules[i]] == null) {
-        try {
-          require(modulename)(Y)
-        } catch (e) {
-          // module does not exist
-          if (typeof window !== 'undefined') {
-            var imported = document.createElement('script')
-            imported.src = Y.sourceDir + '/' + modulename + '/' + modulename + extention
-            document.head.appendChild(imported)
+        // module does not exist
+        if (typeof window !== 'undefined' && window.Y !== 'undefined') {
+          var imported = document.createElement('script')
+          imported.src = Y.sourceDir + '/' + modulename + '/' + modulename + extention
+          document.head.appendChild(imported)
 
-            let requireModule = {}
-            requiringModules[modules[i]] = requireModule
-            requireModule.promise = new Promise(function (resolve) {
-              requireModule.resolve = resolve
-            })
-            promises.push(requireModule.promise)
-          } else {
-            throw e
-          }
+          let requireModule = {}
+          requiringModules[modules[i]] = requireModule
+          requireModule.promise = new Promise(function (resolve) {
+            requireModule.resolve = resolve
+          })
+          promises.push(requireModule.promise)
+        } else {
+          require(modulename)(Y)
         }
       } else {
         promises.push(requiringModules[modules[i]].promise)