           gdf_status = scatter_column<column_type>(input, 
                                                    num_rows,
                                                    row_output_locations, 
-                                                   output);
+                                                   output,
+                                                   column_streams[i]);
           break;
         }
       default:

          gdf_status = scatter_column<column_type>(input, 
                                                   num_rows,
                                                   row_output_locations, 
                                                   output);
          break;
        }
      case 8:

  const size_type num_columns = input_table.get_num_columns();
  const size_type num_rows = input_table.get_column_length();

  // Each column can be scattered in parallel, therefore create a 
  // separate stream for every column
  std::vector<cudaStream_t> column_streams(num_columns);
  for(auto & s : column_streams)
  {
    cudaStreamCreate(&s);
  }


  // Scatter columns one by one
  for(size_type i = 0; i < num_columns; ++i)
  {
