|  | @@ -379,7 +379,8 @@ channelpadding_send_padding_cell_for_callback(channel_t *chan)
 | 
	
		
			
				|  |  |    chan->pending_padding_callback = 0;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    if (monotime_coarse_is_zero(&chan->next_padding_time) ||
 | 
	
		
			
				|  |  | -      chan->has_queued_writes(chan)) {
 | 
	
		
			
				|  |  | +      chan->has_queued_writes(chan) ||
 | 
	
		
			
				|  |  | +      (chan->cmux && circuitmux_num_cells(chan->cmux))) {
 | 
	
		
			
				|  |  |      /* We must have been active before the timer fired */
 | 
	
		
			
				|  |  |      monotime_coarse_zero(&chan->next_padding_time);
 | 
	
		
			
				|  |  |      return;
 | 
	
	
		
			
				|  | @@ -755,7 +756,11 @@ channelpadding_decide_to_pad_channel(channel_t *chan)
 | 
	
		
			
				|  |  |      return CHANNELPADDING_WONTPAD;
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  if (!chan->has_queued_writes(chan)) {
 | 
	
		
			
				|  |  | +  /* There should always be a cmux on the circuit. After that,
 | 
	
		
			
				|  |  | +   * only schedule padding if there are no queued writes and no
 | 
	
		
			
				|  |  | +   * queued cells in circuitmux queues. */
 | 
	
		
			
				|  |  | +  if (chan->cmux && !chan->has_queued_writes(chan) &&
 | 
	
		
			
				|  |  | +      !circuitmux_num_cells(chan->cmux)) {
 | 
	
		
			
				|  |  |      int is_client_channel = 0;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      if (CHANNEL_IS_CLIENT(chan, options)) {
 |