| 
					
				 | 
			
			
				@@ -93,17 +93,21 @@ class FixedRecursiveCharacterTextSplitter(EnhanceRecursiveCharacterTextSplitter) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             splits = list(text) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         # Now go merging things, recursively splitting longer texts. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         _good_splits = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        _good_splits_lengths = []  # cache the lengths of the splits 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for s in splits: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if self._length_function(s) < self._chunk_size: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            s_len = self._length_function(s) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if s_len < self._chunk_size: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 _good_splits.append(s) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _good_splits_lengths.append(s_len) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if _good_splits: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    merged_text = self._merge_splits(_good_splits, separator) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    merged_text = self._merge_splits(_good_splits, separator, _good_splits_lengths) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     final_chunks.extend(merged_text) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     _good_splits = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    _good_splits_lengths = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 other_info = self.recursive_split_text(s) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 final_chunks.extend(other_info) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if _good_splits: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            merged_text = self._merge_splits(_good_splits, separator) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            merged_text = self._merge_splits(_good_splits, separator, _good_splits_lengths) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             final_chunks.extend(merged_text) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return final_chunks 
			 |