diff --git a/src/modules/rlm_sql/rlm_sql.c b/src/modules/rlm_sql/rlm_sql.c
index dc8dc25..f59a04e 100644
--- a/src/modules/rlm_sql/rlm_sql.c
+++ b/src/modules/rlm_sql/rlm_sql.c
@@ -435,13 +435,16 @@ int sql_set_user(SQL_INST *inst, REQUEST *request, char *sqlusername, const char
 	strlcpy(sqlusername, tmpuser, MAX_STRING_LEN);
 	DEBUG2("rlm_sql (%s): sql_set_user escaped user --> '%s'",
 		       inst->config->xlat_name, sqlusername);
-	vp = pairmake("SQL-User-Name", sqlusername, 0);
-	if (vp == NULL) {
+	vp = radius_pairmake(request, &request->packet->vps,
+			     "SQL-User-Name", NULL, 0);
+	if (!vp) {
 		radlog(L_ERR, "%s", librad_errstr);
 		return -1;
 	}
 
-	pairadd(&request->packet->vps, vp);
+	strlcpy(vp->vp_strvalue, tmpuser, sizeof(vp->vp_strvalue));
+	vp->vp_length = strlen(vp->vp_strvalue);
+
 	return 0;
 
 }
