diff --git a/ChangeLog b/ChangeLog
index 2a945933710d824417da4f8255d172f27e83fd6c..29ce38d6faac2a16016857e70a4d0403f16e3c48 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,6 +4,8 @@ version 0.9.9 -- UNRELEASED
 	   action. Thanks to Olivier Berger <oberger@ouvaton.org> for the patch.
 	   (Closes: #511300)
     handler changes
+	all handlers:
+	 . Stop using "local VAR" outside functions. (Closes: #530647)
 	dup:
 	 . Use --tempdir option rather than TMPDIR environment variable.
 	   (Closes Roundup bug #598)
diff --git a/handlers/dup.in b/handlers/dup.in
index e3475b8103f2818e2f3a274626d90b4c402ede70..1d345a3d32c27eb05ebcb692925ad1f03c5e3890 100644
--- a/handlers/dup.in
+++ b/handlers/dup.in
@@ -51,7 +51,7 @@ fi
 
 ### VServers
 # If vservers are configured, check that the ones listed in $vsnames do exist.
-local usevserver=no
+usevserver=no
 if [ $vservers_are_available = yes ]; then
    if [ "$vsnames" = all ]; then
       vsnames="$found_vservers"
diff --git a/handlers/mysql.in b/handlers/mysql.in
index 05ea396530b8a04a1890716d30d3ef9c49789fa9..185a98a74db4d149be37dff6fe2306267a4ae506 100644
--- a/handlers/mysql.in
+++ b/handlers/mysql.in
@@ -24,8 +24,8 @@ getconf configfile /etc/mysql/debian.cnf
 
 # Decide if the handler should operate on a vserver or on the host.
 # In the former case, check that $vsname exists and is running.
-local usevserver=no
-local vroot
+usevserver=no
+vroot=''
 if [ $vservers_are_available = yes ]; then
    if [ -n "$vsname" ]; then
       # does it exist ?
diff --git a/handlers/pgsql.in b/handlers/pgsql.in
index ff71ebc73b1811887c97526dcbf4ab0886e61705..a50d3c79ccecbd4d15923dcd51210128bc07adc8 100644
--- a/handlers/pgsql.in
+++ b/handlers/pgsql.in
@@ -15,8 +15,8 @@ localhost=`hostname`
 
 # Decide if the handler should operate on a vserver or on the host.
 # In the former case, check that $vsname exists and is running.
-local usevserver=no
-local vroot
+usevserver=no
+vroot=''
 if [ $vservers_are_available = yes ]; then
    if [ -n "$vsname" ]; then
       # does it exist ?
diff --git a/handlers/rdiff.in b/handlers/rdiff.in
index e391eddf0bd1717d184693568f1b96bad6be2910..c2f5aa0fbe8e9d6c56d0d543a70476d19b352f88 100644
--- a/handlers/rdiff.in
+++ b/handlers/rdiff.in
@@ -115,7 +115,7 @@ fi
 ### CHECK CONFIG ###
 
 # If vservers are configured, check that the ones listed in $vsnames do exist.
-local usevserver=no
+usevserver=no
 if [ $vservers_are_available = yes ]; then
    if [ "$vsnames" = all ]; then
       vsnames="$found_vservers"
diff --git a/handlers/svn.in b/handlers/svn.in
index 5e5531ab970c3a9b4c0b3c659bd4cd3b9406e423..bb70eee14fd1b608300659173631ab59f696bfa2 100644
--- a/handlers/svn.in
+++ b/handlers/svn.in
@@ -14,8 +14,8 @@ error=0
 
 # Decide if the handler should operate on a vserver or on the host.
 # In the former case, check that $vsname exists and is running.
-local usevserver=no
-local vroot
+usevserver=no
+vroot=''
 if [ $vservers_are_available = yes ]; then
    if [ -n "$vsname" ]; then
       # does it exist ?
diff --git a/handlers/sys.in b/handlers/sys.in
index fcf3e31cb8c42f6f5719f653a1809662ae4aa331..101745c17c562ab6561b7c9290fa839f3132dd3e 100755
--- a/handlers/sys.in
+++ b/handlers/sys.in
@@ -103,7 +103,7 @@ getconf lvm no
 getconf vsnames all
 
 # If vservers are configured, check that the ones listed in $vsnames are running.
-local usevserver=no
+usevserver=no
 if [ $vservers_are_available = yes ]; then
    if [ "$vsnames" = all ]; then
       vsnames="$found_vservers"