search.ch
Open all FromBasel Bad BfToSolothurnWhenThursday, 12/04/2025Close all FromBasel Bad BfToSolothurnWhenThursday, 12/04/2025

Disturbances until 12/13/2025 23:59

Basel SBB station is not wheelchair accessible

Duration: 28.11. 00:00 – 4.12. 23:59

The lift to platform 14/15 is affected. Passengers using a wheelchair should contact the Contact Center Handicap telephone +41 800 007 102 no later than 2 hours before the time of travel (from 05:00 to 00:00)

Limited service: Basel SBB - Mulhouse

Duration: 3.11. 08:00 – 13.12. 23:59

Reason: construction work

04:44 – 06:24 1h 40'1. 2.

  1. walk 6 minutes exiting at Basel, Badischer Bahnhof 6'
  2. Basel, Badischer Bahnhof
  3. BusBus 30 (heading for Basel, Bahnhof SBB) up to terminal station (Duration: 18') 30
  4. walk 6 minutes exiting at Basel SBB 6'
  5. Basel SBB
  6. InterCity 61 (heading for Interlaken Ost) exiting at Olten (Duration: 32') IC 61
  7. Olten
  8. InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 22') IC 5

04:44 – 06:24 1h 40'1. 2.

  1. walk 6 minutes exiting at Basel, Badischer Bahnhof 6'
  2. Basel, Badischer Bahnhof
  3. BusBus 30 (heading for Basel, Bahnhof SBB) up to terminal station (Duration: 18') 30
  4. walk 6 minutes exiting at Basel SBB 6'
  5. Basel SBB
  6. InterCity 61 (heading for Interlaken Ost) exiting at Olten (Duration: 32') IC 61
  7. Olten
  8. InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 22') IC 5
  1. Basel Bad Bf

     

    walk 6 minutes exiting at Basel, Badischer Bahnhof 6' walk 6 minutes exiting at Basel, Badischer Bahnhof 6'

  2. Basel, Bahnhof SBB

    arrival edge B

     

    walk 6 minutes exiting at Basel SBB 6' walk 6 minutes exiting at Basel SBB 6'

    1. Liestal

      1. 2.
    2. Sissach

      1. 2.
    1. Oensingen

      1. 2.
  3. Solothurn

    arrival track 2

05:39 – 06:58 1h 19'1. 2.

  1. S-TrainS-Train S6 (heading for Basel SBB) up to terminal station (Duration: 6') S6
  2. Basel SBB
  3. InterRegio 26 (heading for Locarno) exiting at Olten (Duration: 25') IR 26
  4. Olten
  5. InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 17') IC 5

05:39 – 06:58 1h 19'1. 2.

  1. S-TrainS-Train S6 (heading for Basel SBB) up to terminal station (Duration: 6') S6
  2. Basel SBB
  3. InterRegio 26 (heading for Locarno) exiting at Olten (Duration: 25') IR 26
  4. Olten
  5. InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 17') IC 5
  1. Basel SBB

    Waiting time 18 minutes 18'

    arrival track 2

    from track 5

    InterRegio 26 (heading for Locarno) exiting at Olten (Duration: 25') IR 26

    • FS
    • SN
    1. 2.
  2. Olten

    Waiting time 13 minutes 13'

    arrival track 12

    from track 8

    InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 17') IC 5

    • TT
    • FZ
    • BZ
    • FS
    1. 2.
    1. Bahn-2000-Strecke

  3. Solothurn

    arrival track 2

06:09 – 07:24 1h 15'1. 2.

  1. S-TrainS-Train S6 (heading for Basel SBB) up to terminal station (Duration: 6') S6
  2. Basel SBB
  3. EuroCity (heading for Domodossola (I)) exiting at Olten (Duration: 27') EC
  4. Olten
  5. InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 22') IC 5

06:09 – 07:24 1h 15'1. 2.

  1. S-TrainS-Train S6 (heading for Basel SBB) up to terminal station (Duration: 6') S6
  2. Basel SBB
  3. EuroCity (heading for Domodossola (I)) exiting at Olten (Duration: 27') EC
  4. Olten
  5. InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 22') IC 5

06:45 – 07:58 1. 2.

  1. S-TrainS-Train S6 (heading for Basel SBB) up to terminal station (Duration: 5') S6
  2. Basel SBB
  3. InterCity 21 (heading for Lugano) exiting at Olten (Duration: 25') IC 21
  4. Olten
  5. InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 17') IC 5

06:45 – 07:58 1. 2.

  1. S-TrainS-Train S6 (heading for Basel SBB) up to terminal station (Duration: 5') S6
  2. Basel SBB
  3. InterCity 21 (heading for Lugano) exiting at Olten (Duration: 25') IC 21
  4. Olten
  5. InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 17') IC 5

Interrupted train service on the Luzern - Olten line between Sursee and Nebikon.

Duration: Until approx. 10:15

Reason: collision with a vehicle

Lines IC21, IR15, IR26, IR27, RE24, S29

Passengers travelling between Yverdon-les-Bains, Neuchâtel, Biel/Bienne and Luzern will travel via Bern

Allow for delays and cancellations

Liveticker

  1. Basel SBB

    Waiting time 13 minutes 13'

    arrival track 2

    from track 7

    InterCity 21 (heading for Lugano) exiting at Olten (Duration: 25') IC 21

    • FZ
    • BZ
    • FS
    1. 2.
  2. Olten

    Waiting time 13 minutes 13'

    arrival track 12

    from track 8

    InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 17') IC 5

    • TT
    • FZ
    • BZ
    • FS
    1. 2.
    1. Bahn-2000-Strecke

  3. Solothurn

    arrival track 2

07:02 – 08:24+2' 1h 24'1. 2.

  1. walk 6 minutes exiting at Basel, Badischer Bahnhof 6'
  2. Basel, Badischer Bahnhof
  3. TramTram 1 (heading for Basel, Dreirosenbrücke) exiting at Basel, Bahnhof SBB (Duration: 11') 1
  4. walk 6 minutes exiting at Basel SBB 6'
  5. Basel SBB
  6. InterCity 61 (heading for Interlaken Ost) exiting at Olten (Duration: 27') IC 61
  7. Olten
  8. InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 22') IC 5

07:02 – 08:24+2' 1h 24'1. 2.

  1. walk 6 minutes exiting at Basel, Badischer Bahnhof 6'
  2. Basel, Badischer Bahnhof
  3. TramTram 1 (heading for Basel, Dreirosenbrücke) exiting at Basel, Bahnhof SBB (Duration: 11') 1
  4. walk 6 minutes exiting at Basel SBB 6'
  5. Basel SBB
  6. InterCity 61 (heading for Interlaken Ost) exiting at Olten (Duration: 27') IC 61
  7. Olten
  8. InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 22') IC 5
  1. Basel Bad Bf

     

    walk 6 minutes exiting at Basel, Badischer Bahnhof 6' walk 6 minutes exiting at Basel, Badischer Bahnhof 6'

  2. Basel, Bahnhof SBB

    arrival edge D

     

    walk 6 minutes exiting at Basel SBB 6' walk 6 minutes exiting at Basel SBB 6'

    1. Oensingen

      1. 2.
  3. Solothurn

    arrival track 2

07:19 – 08:24+2' 1h 07'1. 2.

  1. S-TrainS-Train S6 (heading for Basel SBB) up to terminal station (Duration: 6') S6
  2. Tight transfer time 3 minutes in Basel SBB 3'
  3. Basel SBB
  4. InterCity 61 (heading for Interlaken Ost) exiting at Olten (Duration: 27') IC 61
  5. Olten
  6. InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 22') IC 5

07:19 – 08:24+2' 1h 07'1. 2.

  1. S-TrainS-Train S6 (heading for Basel SBB) up to terminal station (Duration: 6') S6
  2. Tight transfer time 3 minutes in Basel SBB 3'
  3. Basel SBB
  4. InterCity 61 (heading for Interlaken Ost) exiting at Olten (Duration: 27') IC 61
  5. Olten
  6. InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 22') IC 5

07:45 – 08:58+1' 1h 14'1. 2.

  1. S-TrainS-Train S6 (heading for Basel SBB) up to terminal station (Duration: 5') S6
  2. Basel SBB
  3. InterCity 6 (heading for Brig) exiting at Olten (Duration: 29') IC 6
  4. Olten
  5. InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 17') IC 5

07:45 – 08:58+1' 1h 14'1. 2.

  1. S-TrainS-Train S6 (heading for Basel SBB) up to terminal station (Duration: 5') S6
  2. Basel SBB
  3. InterCity 6 (heading for Brig) exiting at Olten (Duration: 29') IC 6
  4. Olten
  5. InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 17') IC 5
    1. Liestal

      1. 2.
  1. Olten

    Waiting time 16 minutes 16'

    arrival track 11

    from track 8

    InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 17') IC 5

    • TT
    • FZ
    • BZ
    • FS
    1. 2.
    1. Bahn-2000-Strecke

  2. Solothurn

    arrival track 2

07:55 – 09:24+1' 1h 30'1. 2.

  1. RailwayRailway Regional train (heading for Basel SBB) up to terminal station (Duration: 6') RB
  2. Basel SBB
  3. InterRegio 27 (heading for Luzern) exiting at Olten (Duration: 32') IR 27
  4. Olten
  5. InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 22') IC 5

07:55 – 09:24+1' 1h 30'1. 2.

  1. RailwayRailway Regional train (heading for Basel SBB) up to terminal station (Duration: 6') RB
  2. Basel SBB
  3. InterRegio 27 (heading for Luzern) exiting at Olten (Duration: 32') IR 27
  4. Olten
  5. InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 22') IC 5

Interrupted train service on the Luzern - Olten line between Sursee and Nebikon.

Duration: Until approx. 10:15

Reason: collision with a vehicle

Lines IC21, IR15, IR26, IR27, RE24, S29

Passengers travelling between Yverdon-les-Bains, Neuchâtel, Biel/Bienne and Luzern will travel via Bern

Allow for delays and cancellations

Liveticker

  1. Basel SBB

    Waiting time 15 minutes 15'

    arrival track 1

    from track 8

    InterRegio 27 (heading for Luzern) exiting at Olten (Duration: 32') IR 27

    • BZ
    • FS
    1. 2.
    1. Liestal

      1. 2.
    2. Sissach

      1. 2.
  2. Olten

    Waiting time 14 minutes 14'

    arrival track 12

    from track 3

    InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 22') IC 5

    • TT
    • FZ
    • BZ
    • FS
    1. 2.
    1. Oensingen

      1. 2.
  3. Solothurn

    arrival track 2

08:02 – 09:24+1' 1h 23'1. 2.

  1. walk 6 minutes exiting at Basel, Badischer Bahnhof 6'
  2. Basel, Badischer Bahnhof
  3. TramTram 1 (heading for Basel, Dreirosenbrücke) exiting at Basel, Bahnhof SBB (Duration: 11') 1
  4. walk 6 minutes exiting at Basel SBB 6'
  5. Basel SBB
  6. InterCity 6 (heading for Brig) exiting at Olten (Duration: 27') IC 6
  7. Olten
  8. InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 22') IC 5

08:02 – 09:24+1' 1h 23'1. 2.

  1. walk 6 minutes exiting at Basel, Badischer Bahnhof 6'
  2. Basel, Badischer Bahnhof
  3. TramTram 1 (heading for Basel, Dreirosenbrücke) exiting at Basel, Bahnhof SBB (Duration: 11') 1
  4. walk 6 minutes exiting at Basel SBB 6'
  5. Basel SBB
  6. InterCity 6 (heading for Brig) exiting at Olten (Duration: 27') IC 6
  7. Olten
  8. InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 22') IC 5
  1. Basel Bad Bf

     

    walk 6 minutes exiting at Basel, Badischer Bahnhof 6' walk 6 minutes exiting at Basel, Badischer Bahnhof 6'

  2. Basel, Bahnhof SBB

    arrival edge D

     

    walk 6 minutes exiting at Basel SBB 6' walk 6 minutes exiting at Basel SBB 6'

    1. Oensingen

      1. 2.
  3. Solothurn

    arrival track 2

08:06 – 09:24+1' 1h 19'1. 2.

  1. walk 6 minutes exiting at Basel, Badischer Bahnhof 6'
  2. Basel, Badischer Bahnhof
  3. TramTram 2 (heading for Binningen, Kronenplatz) exiting at Basel, Bahnhof SBB (Duration: 11') 2
  4. walk 6 minutes exiting at Basel SBB 6'
  5. Basel SBB
  6. InterCity 6 (heading for Brig) exiting at Olten (Duration: 26') IC 6
  7. Olten
  8. InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 22') IC 5

08:06 – 09:24+1' 1h 19'1. 2.

  1. walk 6 minutes exiting at Basel, Badischer Bahnhof 6'
  2. Basel, Badischer Bahnhof
  3. TramTram 2 (heading for Binningen, Kronenplatz) exiting at Basel, Bahnhof SBB (Duration: 11') 2
  4. walk 6 minutes exiting at Basel SBB 6'
  5. Basel SBB
  6. InterCity 6 (heading for Brig) exiting at Olten (Duration: 26') IC 6
  7. Olten
  8. InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 22') IC 5
  1. Basel Bad Bf

     

    walk 6 minutes exiting at Basel, Badischer Bahnhof 6' walk 6 minutes exiting at Basel, Badischer Bahnhof 6'

  2. Basel, Bahnhof SBB

    arrival edge D

     

    walk 6 minutes exiting at Basel SBB 6' walk 6 minutes exiting at Basel SBB 6'

    1. Oensingen

      1. 2.
  3. Solothurn

    arrival track 2

08:19 – 09:24+1' 1h 06'1. 2.

  1. S-TrainS-Train S6 (heading for Basel SBB) up to terminal station (Duration: 6') S6
  2. Tight transfer time 3 minutes in Basel SBB 3'
  3. Basel SBB
  4. InterCity 6 (heading for Brig) exiting at Olten (Duration: 27') IC 6
  5. Olten
  6. InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 22') IC 5

08:19 – 09:24+1' 1h 06'1. 2.

  1. S-TrainS-Train S6 (heading for Basel SBB) up to terminal station (Duration: 6') S6
  2. Tight transfer time 3 minutes in Basel SBB 3'
  3. Basel SBB
  4. InterCity 6 (heading for Brig) exiting at Olten (Duration: 27') IC 6
  5. Olten
  6. InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 22') IC 5
  1. Basel SBB

    Tight transfer time 3 minutes in Basel SBB 3'

    arrival track 2

    from track 10

    InterCity 6 (heading for Brig) exiting at Olten (Duration: 27') IC 6

    • FA
    • BZ
    • FS
    1. 2.
    1. Oensingen

      1. 2.
  2. Solothurn

    arrival track 2

08:45 – 09:58+0' 1h 13'1. 2.

  1. S-TrainS-Train S6 (heading for Basel SBB) up to terminal station (Duration: 5') S6
  2. Basel SBB
  3. InterCity 61 (heading for Interlaken Ost) exiting at Olten (Duration: 29') IC 61
  4. Olten
  5. InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 17') IC 5

08:45 – 09:58+0' 1h 13'1. 2.

  1. S-TrainS-Train S6 (heading for Basel SBB) up to terminal station (Duration: 5') S6
  2. Basel SBB
  3. InterCity 61 (heading for Interlaken Ost) exiting at Olten (Duration: 29') IC 61
  4. Olten
  5. InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 17') IC 5
    1. Liestal

      1. 2.
  1. Olten

    Waiting time 16 minutes 16'

    arrival track 11

    from track 8

    InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 17') IC 5

    • TT
    • FZ
    • BZ
    • FS
    1. 2.
    1. Bahn-2000-Strecke

  2. Solothurn

    arrival track 2

09:04 – 10:24+1' 1h 21'1. 2.

  1. walk 6 minutes exiting at Basel, Badischer Bahnhof 6'
  2. Basel, Badischer Bahnhof
  3. TramTram 2 (heading for Binningen, Kronenplatz) exiting at Basel, Bahnhof SBB (Duration: 11') 2
  4. walk 6 minutes exiting at Basel SBB 6'
  5. Basel SBB
  6. InterCity 61 (heading for Interlaken Ost) exiting at Olten (Duration: 27') IC 61
  7. Olten
  8. InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 22') IC 5

09:04 – 10:24+1' 1h 21'1. 2.

  1. walk 6 minutes exiting at Basel, Badischer Bahnhof 6'
  2. Basel, Badischer Bahnhof
  3. TramTram 2 (heading for Binningen, Kronenplatz) exiting at Basel, Bahnhof SBB (Duration: 11') 2
  4. walk 6 minutes exiting at Basel SBB 6'
  5. Basel SBB
  6. InterCity 61 (heading for Interlaken Ost) exiting at Olten (Duration: 27') IC 61
  7. Olten
  8. InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 22') IC 5
  1. Basel Bad Bf

     

    walk 6 minutes exiting at Basel, Badischer Bahnhof 6' walk 6 minutes exiting at Basel, Badischer Bahnhof 6'

  2. Basel, Bahnhof SBB

    arrival edge E

     

    walk 6 minutes exiting at Basel SBB 6' walk 6 minutes exiting at Basel SBB 6'

    1. Oensingen

      1. 2.
  3. Solothurn

    arrival track 2

09:19 – 10:24+1' 1h 06'1. 2.

  1. S-TrainS-Train S6 (heading for Basel SBB) up to terminal station (Duration: 6') S6
  2. Tight transfer time 3 minutes in Basel SBB 3'
  3. Basel SBB
  4. InterCity 61 (heading for Interlaken Ost) exiting at Olten (Duration: 27') IC 61
  5. Olten
  6. InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 22') IC 5

09:19 – 10:24+1' 1h 06'1. 2.

  1. S-TrainS-Train S6 (heading for Basel SBB) up to terminal station (Duration: 6') S6
  2. Tight transfer time 3 minutes in Basel SBB 3'
  3. Basel SBB
  4. InterCity 61 (heading for Interlaken Ost) exiting at Olten (Duration: 27') IC 61
  5. Olten
  6. InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 22') IC 5
  1. Basel SBB

    Tight transfer time 3 minutes in Basel SBB 3'

    arrival track 2

    from track 8

    InterCity 61 (heading for Interlaken Ost) exiting at Olten (Duration: 27') IC 61

    • FS
    1. 2.
    1. Oensingen

      1. 2.
  2. Solothurn

    arrival track 2

09:19 – 10:24+1' 1h 06'1. 2.

  1. S-TrainS-Train S6 (heading for Basel SBB) up to terminal station (Duration: 6') S6
  2. Basel SBB
  3. InterCity 61 (heading for Interlaken Ost) exiting at Olten (Duration: 23') IC 61
  4. Olten
  5. InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 23') IC 5

09:19 – 10:24+1' 1h 06'1. 2.

  1. S-TrainS-Train S6 (heading for Basel SBB) up to terminal station (Duration: 6') S6
  2. Basel SBB
  3. InterCity 61 (heading for Interlaken Ost) exiting at Olten (Duration: 23') IC 61
  4. Olten
  5. InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 23') IC 5

09:45 – 10:58+0' 1h 13'1. 2.

  1. S-TrainS-Train S6 (heading for Basel SBB) up to terminal station (Duration: 5') S6
  2. Basel SBB
  3. InterCity 61 (heading for Interlaken Ost) exiting at Olten (Duration: 29') IC 61
  4. Olten
  5. InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 17') IC 5

09:45 – 10:58+0' 1h 13'1. 2.

  1. S-TrainS-Train S6 (heading for Basel SBB) up to terminal station (Duration: 5') S6
  2. Basel SBB
  3. InterCity 61 (heading for Interlaken Ost) exiting at Olten (Duration: 29') IC 61
  4. Olten
  5. InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 17') IC 5
    1. Liestal

      1. 2.
  1. Olten

    Waiting time 16 minutes 16'

    arrival track 11

    from track 8

    InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 17') IC 5

    • TT
    • FZ
    • BZ
    • FS
    1. 2.
    1. Bahn-2000-Strecke

  2. Solothurn

    arrival track 2

10:04 – 11:24+0' 1h 20'1. 2.

  1. walk 6 minutes exiting at Basel, Badischer Bahnhof 6'
  2. Basel, Badischer Bahnhof
  3. TramTram 2 (heading for Binningen, Kronenplatz) exiting at Basel, Bahnhof SBB (Duration: 11') 2
  4. walk 6 minutes exiting at Basel SBB 6'
  5. Basel SBB
  6. InterCity 6 (heading for Brig) exiting at Olten (Duration: 27') IC 6
  7. Olten
  8. InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 22') IC 5

10:04 – 11:24+0' 1h 20'1. 2.

  1. walk 6 minutes exiting at Basel, Badischer Bahnhof 6'
  2. Basel, Badischer Bahnhof
  3. TramTram 2 (heading for Binningen, Kronenplatz) exiting at Basel, Bahnhof SBB (Duration: 11') 2
  4. walk 6 minutes exiting at Basel SBB 6'
  5. Basel SBB
  6. InterCity 6 (heading for Brig) exiting at Olten (Duration: 27') IC 6
  7. Olten
  8. InterCity 5 (heading for Lausanne) exiting at Solothurn (Duration: 22') IC 5
  1. Basel Bad Bf

     

    walk 6 minutes exiting at Basel, Badischer Bahnhof 6' walk 6 minutes exiting at Basel, Badischer Bahnhof 6'

  2. Basel, Bahnhof SBB

    arrival edge E

     

    walk 6 minutes exiting at Basel SBB 6' walk 6 minutes exiting at Basel SBB 6'

    1. Oensingen

      1. 2.
  3. Solothurn

    arrival track 2

Legend

  • Low to average occupancy expected
  • High occupancy expected
  • Very high occupancy expected
  • Cancelled
  • Alternative route
  • Restaurant
  • Bistro
  • Quiet zone in 1st class
  • BICYCLES: Reservation required
  • Seat reservation possible
  • NF
    Low-floor access
  • TT
    Tilting train
  • FA
    Family Coach with play area
  • FZ
    Family zone without play area
  • BZ
    Business zone in 1st class
  • FS
    Free Internet with the SBB FreeSurf app
  • WV
    WiFi Hotspot available
  • VB
    BICYCLES: Limited number of places
  • SN
    Catering zone / Vending machine