function seg2_out = seg2_union( seg2_list, silmindur_sec )
  
  if nargin < 1
    error( [ mfilename ' needs at least 1 input argument.' ] );
  end
  
  if ~exist( 'silmindur_sec', 'var' )
    silmindur_sec = 1e-4;
  end
  
  % First convert into segmentation with explicit silences
  
  total_time = -Inf;
  for a = 1:length( seg2_list )
    total_time = max( [ total_time;   seg2_list{ a }(:) ] );
  end
  
  seg3_list = cell( size( seg2_list ) );
  
  for a = 1:length( seg2_list )
    seg3_list{ a } = define_silence_in_seg( seg2_list{ a }, total_time );
  end
  
  % Apply union
  
  seg3_out = merge_seg( seg3_list );
  
  % Remove "useless" information
  
  seg2_out = seg3_out( 1:2, find( seg3_out( 3,: ) ) );
  