diff --git a/ChangeLog b/ChangeLog
index 2a414a39b0801f8afde0dc057649c49bf437e923..ae871bfea9f9487fc46c7eb434431c8a0de6f232 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -14,6 +14,7 @@ version 0.9.4 -- unreleased
 	 . Fixed inversed vsname emptiness check
 	 . Fixed su quote usage to be more posixy
 	 . Fixed shell expansion, thanks Thomas Kotzian (Closes: #363297)
+	 . postgres user UID is now the one from inside the vserver if necessary
 	svn:
 	 . Fixed inversed vsname emptiness check
 	rdiff:
diff --git a/handlers/pgsql b/handlers/pgsql
index b67b3f1e548ccbdada48b9b1465a45d178a01917..0c72c82ec04294ee6a0f610a1e196aa9f9be2c0a 100644
--- a/handlers/pgsql
+++ b/handlers/pgsql
@@ -61,7 +61,11 @@ fi
 
 # give backup dir the good uid and permissions
 # (in respect to the vserver, if $usevserver = yes)
-pguid=`getent passwd postgres | awk -F: '{print $3}'`
+if [ $usevserver = yes ]; then
+   pguid=`$VSERVER $vsname exec getent passwd postgres | awk -F: '{print $3}'`
+else
+   pguid=`getent passwd postgres | awk -F: '{print $3}'`
+fi
 [ -n "$pguid" ] || \
     fatal "No user called postgres`[ $usevserver = no ] || echo \" on vserver $vsname\"`."
 debug "chown $pguid $vroot$backupdir"