| 
					
				 | 
			
			
				@@ -1108,6 +1108,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(cTypeError, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             "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)) { 
			 |