diff --git a/lib/modules/Sql.pmod/pgsql_util.pmod b/lib/modules/Sql.pmod/pgsql_util.pmod
index a9777153f9a490f81d049584a04fe5a7331852b5..3834a21817a3166b7cabc659cc178fd48a8a24ba 100644
--- a/lib/modules/Sql.pmod/pgsql_util.pmod
+++ b/lib/modules/Sql.pmod/pgsql_util.pmod
@@ -1195,7 +1195,11 @@ class sql_result {
               value = (string)value;
               switch (cenc) {
                 case UTF8CHARSET:
-                  value = string_to_utf8(value);
+                  if (has_value(value, 0))
+                    SUSERERROR("NUL characters not allowed in PG-UTF-8: %O\n",
+                     value);
+                  else
+                    value = string_to_utf8(value);
                   break;
                 default:
                   if (String.width(value)>8) {