|  | @@ -1106,6 +1106,13 @@ static void putmsg(VALUE msg_rb, const Descriptor* desc,
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    TypedData_Get_Struct(msg_rb, MessageHeader, &Message_type, msg);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +  if (desc != msg->descriptor) {
 | 
	
		
			
				|  |  | +    rb_raise(rb_eArgError,
 | 
	
		
			
				|  |  | +             "The type of given msg is '%s', expect '%s'.",
 | 
	
		
			
				|  |  | +             upb_msgdef_fullname(msg->descriptor->msgdef),
 | 
	
		
			
				|  |  | +             upb_msgdef_fullname(desc->msgdef));
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |    for (upb_msg_field_begin(&i, desc->msgdef);
 | 
	
		
			
				|  |  |         !upb_msg_field_done(&i);
 | 
	
		
			
				|  |  |         upb_msg_field_next(&i)) {
 |