|  | @@ -196,19 +196,19 @@ define(['./compatibility' /* TODO remove */], function () {
 | 
	
		
			
				|  |  |          var classes = [];
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          this.buildTraitOrClass = function (pkgName, builder) {
 | 
	
		
			
				|  |  | -            var pkg = st.packages[pkgName];
 | 
	
		
			
				|  |  | -            if (!pkg) throw new Error("Missing package " + pkgName);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |              var traitOrClass = globals.hasOwnProperty(builder.className) && globals[builder.className];
 | 
	
		
			
				|  |  |              if (traitOrClass) {
 | 
	
		
			
				|  |  | -                if (traitOrClass.pkg !== pkg) throw new Error("Incompatible cross-package update of trait or class: " + traitOrClass.className);
 | 
	
		
			
				|  |  | +                if (!traitOrClass.pkg) throw new Error("Updated trait or class must have package: " + traitOrClass.className);
 | 
	
		
			
				|  |  | +                if (traitOrClass.pkg.pkgName !== pkgName) throw new Error("Incompatible cross-package update of trait or class: " + traitOrClass.className);
 | 
	
		
			
				|  |  |                  builder.updateExisting(traitOrClass);
 | 
	
		
			
				|  |  |              } else {
 | 
	
		
			
				|  |  | +                var pkg = st.packages[pkgName];
 | 
	
		
			
				|  |  | +                if (!pkg) throw new Error("Missing package " + pkgName);
 | 
	
		
			
				|  |  |                  traitOrClass = builder.make();
 | 
	
		
			
				|  |  |                  traitOrClass.pkg = pkg;
 | 
	
		
			
				|  |  | +                addTraitOrClass(traitOrClass);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            addTraitOrClass(traitOrClass);
 | 
	
		
			
				|  |  |              return traitOrClass;
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |  
 |