diff --git a/launch/README b/launch/README
index 4759256779..bca46e4396 100644
--- a/launch/README
+++ b/launch/README
@@ -65,12 +65,12 @@ and turn on the Puppet agent so it will start checking into the
 master on its own. on Debian/Ubuntu::
 
   sudo sed -i 's/^START=.*/START=yes/' /etc/default/puppet
-  sudo invoke-rc.d puppet start
+  sudo su -c 'invoke-rc.d puppet start'
 
 ...or on CentOS/Fedora/RHEL::
 
   sudo chkconfig puppet on
-  sudo service puppet start
+  sudo su -c 'service puppet start'
 
 You should be able to tell from the Puppet Dashboard when it begins
 to check in, which normally happens at 10-minute intervals.
diff --git a/launch/launch-node.py b/launch/launch-node.py
index 5e32625c39..f11815a272 100755
--- a/launch/launch-node.py
+++ b/launch/launch-node.py
@@ -35,6 +35,7 @@ NOVA_PASSWORD=os.environ['OS_PASSWORD']
 NOVA_URL=os.environ['OS_AUTH_URL']
 NOVA_PROJECT_ID=os.environ['OS_TENANT_NAME']
 NOVA_REGION_NAME=os.environ['OS_REGION_NAME']
+IPV6=os.environ.get('IPV6', '0') is 1
 
 SCRIPT_DIR = os.path.dirname(sys.argv[0])        
 
@@ -79,8 +80,9 @@ def bootstrap_server(server, admin_pass, key, cert, environment, name,
 
     ssh_client = utils.ssh_connect(ip, 'root', ssh_kwargs, timeout=600)
 
-    ssh_client.ssh('ping6 -c5 -Q 0x10 review.openstack.org '
-                   '|| ping6 -c5 -Q 0x10 wiki.openstack.org')
+    if IPV6:
+        ssh_client.ssh('ping6 -c5 -Q 0x10 review.openstack.org '
+                       '|| ping6 -c5 -Q 0x10 wiki.openstack.org')
 
     ssh_client.scp(os.path.join(SCRIPT_DIR, '..', 'install_puppet.sh'),
                    'install_puppet.sh')