diff --git a/ChangeLog b/ChangeLog
index 2c65f50bab89a6de1e2c92ca8a1f4e08d6e851fd..4b5e9f7862d12a59883e13aedb0e3a3fe4e81008 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,11 @@
 version 0.9.3 -- unreleased
     backupninja changes
-       backupninja.conf
+        backupninja.conf
          . added (commented out) the various default paths to
            programs such as PGSQLDUMP, so that users can figure
            out more easily they can customize them
+        code refactor:
+	 . now uses vservers lib to init vservers support
     handler changes
         mysql:
          . fixed no user defaults file processing
diff --git a/src/backupninja.in b/src/backupninja.in
index 29c4e1ed1ca404e227c68bd12cf4d8bf083578f5..b0766eb17f62f6108744bb71f8c1ad37538738d3 100755
--- a/src/backupninja.in
+++ b/src/backupninja.in
@@ -398,6 +398,7 @@ fi
 
 # include shared functions
 . $libdirectory/tools
+. $libdirectory/vserver
 
 setfile $conffile
 
@@ -422,10 +423,10 @@ getconf PGSQLDUMP /usr/bin/pg_dump
 getconf PGSQLDUMPALL /usr/bin/pg_dumpall
 getconf GZIP /bin/gzip
 getconf RSYNC /usr/bin/rsync
-getconf vservers no
-getconf VSERVERINFO /usr/sbin/vserver-info
-getconf VSERVER /usr/sbin/vserver
-getconf VROOTDIR `if [ -f "$VSERVERINFO" ]; then $VSERVERINFO info SYSINFO | grep '^ *vserver-Rootdir' | awk '{print $2}'; fi`
+
+# initialize vservers support
+# (get config variables and check real vservers availability)
+init_vservers nodialog
 
 if [ ! -d "$configdirectory" ]; then
 	echo "Configuration directory '$configdirectory' not found."
@@ -439,11 +440,6 @@ if [ "$UID" != "0" ]; then
 	exit 1
 fi
 
-if [ "$vservers" == "yes" -a ! -d "$VROOTDIR" ]; then
-	echo "vservers option set in config, but $VROOTDIR is not a directory!"
-	fatal "vservers option set in config, but $VROOTDIR is not a directory!"
-fi
-
 ## Process each configuration file
 
 # by default, don't make files which are world or group readable.