|  | @@ -369,15 +369,18 @@ function Smalltalk(){
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      st.removeMethod = function(method) {
 | 
	
		
			
				|  |  |          var protocol = method.category;
 | 
	
		
			
				|  |  | -        var shouldDeleteProtocol;
 | 
	
		
			
				|  |  |          var klass = method.methodClass;
 | 
	
		
			
				|  |  | +		var methods = klass.fn.prototype.methods;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        delete klass.fn.prototype[method.selector._asSelector()];
 | 
	
		
			
				|  |  | -	    delete klass.fn.prototype.methods[method.selector];
 | 
	
		
			
				|  |  | +		delete klass.fn.prototype[method.selector._asSelector()];
 | 
	
		
			
				|  |  | +		delete methods[method.selector];
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        for(var i=0; i<klass.fn.prototype.methods; i++) {
 | 
	
		
			
				|  |  | -            if(klass.fn.prototype.methods[i].category == protocol) {
 | 
	
		
			
				|  |  | -                shouldDeleteProtocol = true;
 | 
	
		
			
				|  |  | +		var selectors = Object.keys(methods);
 | 
	
		
			
				|  |  | +		var shouldDeleteProtocol = true;
 | 
	
		
			
				|  |  | +		for(var i= 0, l = selectors.length; i<l; i++) {
 | 
	
		
			
				|  |  | +            if(methods[selectors[i]].category === protocol) {
 | 
	
		
			
				|  |  | +                shouldDeleteProtocol = false;
 | 
	
		
			
				|  |  | +				break;
 | 
	
		
			
				|  |  |              };
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |          if(shouldDeleteProtocol) {
 |