diff --git a/lib/modules/Sql.pmod/pgsql.pike b/lib/modules/Sql.pmod/pgsql.pike
index 1fcfd0dcd88a5ff3d36c1559a69d332b8ed62845..c746b796245747ecf79f6a75200323cc0b51dc84 100644
--- a/lib/modules/Sql.pmod/pgsql.pike
+++ b/lib/modules/Sql.pmod/pgsql.pike
@@ -205,12 +205,12 @@ private string _sprintf(int type, void|mapping flags) {
 protected void create(void|string host, void|string database,
                       void|string user, void|string pass,
                       void|mapping(string:mixed) options) {
-  this::pass = Standards.IDNA.to_ascii(pass);
+  this::pass = pass && pass != "" ? Standards.IDNA.to_ascii(pass) : pass;
   if(pass) {
     String.secure(pass);
     pass = "CENSORED";
   }
-  this::user = Standards.IDNA.to_ascii(user, 1);
+  this::user = user && user != "" ? Standards.IDNA.to_ascii(user, 1) : user;
   this::database = database;
   _options = options || ([]);