| 
					
				 | 
			
			
				@@ -606,8 +606,10 @@ define(['require', './brikz.umd', './compatibility'], function (require, Brikz) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // Therefore we populate the organizer here too 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             addOrganizationElement(klass, method.protocol); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (initialized()) installMethod(method, klass); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            propagateMethodChange(klass, method); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (initialized()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                installMethod(method, klass); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                propagateMethodChange(klass, method, klass); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var usedSelectors = method.messageSends, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 targetClasses = initialized() ? detachedRootClasses() : []; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -619,22 +621,18 @@ define(['require', './brikz.umd', './compatibility'], function (require, Brikz) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        function propagateMethodChange(klass, method) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // If already initialized (else it will be done later anyway), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // re-initialize all subclasses to ensure the method change 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // propagation (for detached root classes, not using the prototype 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // chain). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (initialized()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                st.traverseClassTree(klass, function (subclass) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (subclass !== klass) initMethodInClass(subclass, method); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        function propagateMethodChange(klass, method, exclude) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var selector = method.selector; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var jsSelector = method.jsSelector; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            st.traverseClassTree(klass, function (subclass) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (subclass != exclude) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    initMethodInClass(subclass, selector, jsSelector); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        function initMethodInClass(klass, method) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (klass.detachedRoot && !klass.methods[method.selector]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                var jsSelector = method.jsSelector; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        function initMethodInClass(klass, selector, jsSelector) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (klass.detachedRoot && !klass.methods[selector]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 installJSMethod(klass.fn.prototype, jsSelector, klass.superclass.fn.prototype[jsSelector]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -652,8 +650,9 @@ define(['require', './brikz.umd', './compatibility'], function (require, Brikz) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             delete klass.fn.prototype[method.jsSelector]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             delete klass.methods[method.selector]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            initMethodInClass(klass, method); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            propagateMethodChange(klass, method); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (initialized()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                propagateMethodChange(klass, method, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // Do *not* delete protocols from here. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // This is handled by #removeCompiledMethod 
			 |