diff --git a/bundles/openstack/deploy-openstack.rst b/bundles/openstack/deploy-openstack.rst
index 0342f72935499504c5a750fdeb715438977f52a8..116255dd03e7fa7a15fcf002eb0a444066e4ebfd 100644
--- a/bundles/openstack/deploy-openstack.rst
+++ b/bundles/openstack/deploy-openstack.rst
@@ -27,8 +27,8 @@ They reflect limitations of previous Juju version in other respects, for example
 in the separation between regular controller nodes
 (marked with *ctrl*) and controller nodes with public address (marked with *ctrl-pub*)
 
-The bundle is designed to run on bare metal using Juju with [MAAS]_ (Metal-as-a-Service);
-you will need to have setup a [MAAS]_
+The bundle is designed to run on bare metal using Juju with MAAS_ (Metal-as-a-Service);
+you will need to have setup a MAAS_
 deployment with a minimum of 5 physical servers prior to using this bundle.
 
 Servers should have:
@@ -136,7 +136,7 @@ We'll also need an 'internal' network for the admin user which instances are act
     ./neutron-tenant-net -t admin -r provider-router \
         [-N <dns-server>] internal 10.5.5.0/24
 
-Neutron provides a wide range of configuration options; see the [OpenStack_Neutron]_ documentation for more details.
+Neutron provides a wide range of configuration options; see the `OpenStack Neutron`_ documentation for more details.
 
 Booting an instance
 ...................
@@ -236,14 +236,14 @@ It will ask for a password which can be generated from with the command:
 What next?
 ----------
 
-Configuring and managing services on an OpenStack cloud is complex; take a look a the [OpenStack_Admin_Guide]_ for a complete reference on how to configure an OpenStack cloud for your requirements.
+Configuring and managing services on an OpenStack cloud is complex; take a look a the `OpenStack Admin Guide`_ for a complete reference on how to configure an OpenStack cloud for your requirements.
 
 Useful Cloud URL's
 ------------------
 
-.. [OpenStack_Dashboard] http://openstack-dashboard_ip/horizon
-.. [MAAS] http://maas.ubuntu.com/docs
-.. [GARR_CSD_Gitlab] https://git.garr.it/cloud/
-.. [Simplestreams] https://launchpad.net/simplestreams
-.. [OpenStack_Neutron] http://docs.openstack.org/admin-guide-cloud/content/ch_networking.html
-.. [OpenStack_Admin_Guide] http://docs.openstack.org/user-guide-admin/content
+.. _`OpenStack Dashboard`: http://openstack-dashboard_ip/horizon
+.. _MAAS: http://maas.ubuntu.com/docs
+.. _`GARR CSD Gitlab`: https://git.garr.it/cloud/
+.. _Simplestreams: https://launchpad.net/simplestreams
+.. _`OpenStack Neutron`: http://docs.openstack.org/admin-guide-cloud/content/ch_networking.html
+.. _`OpenStack Admin Guide`: http://docs.openstack.org/user-guide-admin/content
diff --git a/web/doc/federation/osdeploy.rst b/web/doc/federation/osdeploy.rst
index 7ec7b35d7db27cd712c5bb189a9c1f80d39fa94c..30595644f2c81cb95edca80e59d4085a0041b384 100644
--- a/web/doc/federation/osdeploy.rst
+++ b/web/doc/federation/osdeploy.rst
@@ -5,7 +5,7 @@ OpenStack Provisioning
 OpenStack provisioning is done by Juju.
 
 Deploying a charm or bundle is very simple using the Juju GUI. Once logged
-on the Juju GUI (see [Juju_GUI]_) search the store for charms or bundles.
+on the Juju GUI (see Juju_GUI_) search the store for charms or bundles.
 
 You could start experimenting with the `Openstack-Telemetry bundle
 <https://jujucharms.com/openstack-telemetry/>`_ which deploys a full OpenStack
@@ -13,7 +13,8 @@ cluster with Ceilometer service.
 
 You're now ready to deploy more complex bundles!
 
-See for example the documentation and material for the deployment of the GARR OpenStack bundle, 
-available on `GARR CSD GitLab <https://gitlab.global.garrservices.it/csdgarr/cloud/blob/master/bundles/openstack/deploy-openstack.rst>`_.
+See for example the documentation and material for the deployment of the GARR
+OpenStack bundle, available on `GARR CSD GitLab`_
 
-.. [Juju_GUI] jujuinstall.md#juju-gui
+.. _Juju_GUI: jujuinstall.md#juju-gui
+.. _`GARR CSD GitLab`: https://git.garr.it/cloud/web/blob/master/bundles/openstack/deploy-openstack.rst