M49

Driving between South Wales and the West Country? The M49 is for you.

Some little motorways have been described as nothing more than glorified sliproads. More than anywhere else, that is true of the M49, which runs for just five miles between the M4 Second Severn Crossing and the M5 at Avonmouth, with no intermediate junctions. It provides a direct route for traffic going between the South West (and Bristol) and Wales, avoiding Almondsbury Interchange. And it does absolutely nothing else. In fact, because it only links the M4 and M5, it is the only motorway in the UK that you can only reach by motorway - there is no way on from ordinary roads.

The junction at the northern end of the M49 has sliproads to provide access in all directions, but the reason for that isn't clear. There's no real reason to allow traffic on or off the M49 from the M4 to the east - anybody doing that would have joined the M5 two junctions previously to reach Avonmouth. The extra sliproads are perhaps to provide a way to avoid the bridge tolls, or perhaps to function as a bypass of the M5 in emergencies, perhaps to provide access to the weighbridge in the middle of the roundabout there - but the most likely reason is that an intermediate junction with a park and ride facility was once planned for the M49.

Plans for the junction were resurrected in 2015, to support expansion of the industrial area next to the motorway at Avonmouth, and if that happens those spare sliproads at the M4 junction will suddenly have a real purpose.

Motorway numbering conventions suggest that - because the M49 lies south of the M4 - it should really have a number beginning with a 3. M39, perhaps?

Start
Avonmouth
End
Severn Beach
Passes
None
Connects to
Length
5 miles
Open Junctions Section
Jun 1996 Entire motorway

Exit list

Drupal\Core\Render\Markup(1)
  • contents
  • Available methods (4)
  • protected string -> string(233) " <!-- THEME DEBUG --> <!-- THEME HOOK: 'views_view_field' --> <!-- BEGIN OUTPUT …"
    
    <!-- THEME DEBUG -->
    <!-- THEME HOOK: 'views_view_field' -->
    <!-- BEGIN OUTPUT from 'core/modules/views/templates/views-view-field.html.twig' -->
    
    <!-- END OUTPUT from 'core/modules/views/templates/views-view-field.html.twig' -->
    
    
  • public static create($string) -> string|\Drupal\Component\Render\MarkupInterface
    Creates a Markup object if necessary.
    
    If $string is equal to a blank string then it is not necessary to create a
    Markup object. If $string is an object that implements MarkupInterface it
    is returned unchanged.
    
    @param mixed $string
    The string to mark as safe. This value will be cast to a string.
    
    @return string|\Drupal\Component\Render\MarkupInterface
    A safe string.
    
    Defined in .../core/lib/Drupal/Component/Render/MarkupTrait.php:32
    public __toString() -> string
    Returns the string version of the Markup object.
    
    @return string
    The safe string content.
    
    Defined in .../core/lib/Drupal/Component/Render/MarkupTrait.php:51
    public count() -> int
    Returns the string length.
    
    @return int
    The length of the string.
    
    Defined in .../core/lib/Drupal/Component/Render/MarkupTrait.php:61
    public jsonSerialize() -> string
    Returns a representation of the object for use in JSON serialization.
    
    @return string
    The safe string content.
    
    Defined in .../core/lib/Drupal/Component/Render/MarkupTrait.php:71
Drupal\Core\Render\Markup(1)
  • contents
  • Available methods (4)
  • protected string -> string(233) " <!-- THEME DEBUG --> <!-- THEME HOOK: 'views_view_field' --> <!-- BEGIN OUTPUT …"
    
    <!-- THEME DEBUG -->
    <!-- THEME HOOK: 'views_view_field' -->
    <!-- BEGIN OUTPUT from 'core/modules/views/templates/views-view-field.html.twig' -->
    
    <!-- END OUTPUT from 'core/modules/views/templates/views-view-field.html.twig' -->
    
    
  • public static create($string) -> string|\Drupal\Component\Render\MarkupInterface
    Creates a Markup object if necessary.
    
    If $string is equal to a blank string then it is not necessary to create a
    Markup object. If $string is an object that implements MarkupInterface it
    is returned unchanged.
    
    @param mixed $string
    The string to mark as safe. This value will be cast to a string.
    
    @return string|\Drupal\Component\Render\MarkupInterface
    A safe string.
    
    Defined in .../core/lib/Drupal/Component/Render/MarkupTrait.php:32
    public __toString() -> string
    Returns the string version of the Markup object.
    
    @return string
    The safe string content.
    
    Defined in .../core/lib/Drupal/Component/Render/MarkupTrait.php:51
    public count() -> int
    Returns the string length.
    
    @return int
    The length of the string.
    
    Defined in .../core/lib/Drupal/Component/Render/MarkupTrait.php:61
    public jsonSerialize() -> string
    Returns a representation of the object for use in JSON serialization.
    
    @return string
    The safe string content.
    
    Defined in .../core/lib/Drupal/Component/Render/MarkupTrait.php:71
Junction   Northbound               Southbound  
M4 J22
0.0 km
SOUTH WALES
Cardiff
Newport
M4 Link
London
Bristol (M32 Link)
M4 Link






M4






M4
(M32)
N/A
LanesLanesLanesLanes LanesLanesLanesLanes
0 miles, 2 lanes 0 miles, 2 lanes
M5 J18
8.0 km
N/A (A4)


M5




M5

The SOUTH WEST
Bristol
Taunton
M5 Link
Avonmouth
Bristol (W & Airport)
A4
LanesLanesLanesLanes LanesLanesLanesLanesLanes
LanesLanesLanesLanesLanes
0 miles, lanes 0 miles, lanes
Routes

Picture credits