diff --git a/openbsc/src/vty_interface_cmds.c b/openbsc/src/vty_interface_cmds.c
index 9ca9a24..06eb2a5 100644
--- a/openbsc/src/vty_interface_cmds.c
+++ b/openbsc/src/vty_interface_cmds.c
@@ -39,23 +39,6 @@
 		vty_out(vty, "\r");
 }
 
-struct buffer *vty_argv_to_buffer(int argc, const char *argv[], int base)
-{
-	struct buffer *b = buffer_new(NULL, 1024);
-	int i;
-
-	if (!b)
-		return NULL;
-
-	for (i = base; i < argc; i++) {
-		buffer_putstr(b, argv[i]);
-		buffer_putc(b, ' ');
-	}
-	buffer_putc(b, '\0');
-
-	return b;
-}
-
 struct log_target *log_target_create_vty(struct vty *vty)
 {
 	struct log_target *target;
@@ -410,24 +393,16 @@
 	"Save human-readable decription of the object\n")
 {
 	char **dptr = vty->index_sub;
-	struct buffer *b;
 
 	if (!dptr) {
 		vty_out(vty, "vty->index_sub == NULL%s", VTY_NEWLINE);
 		return CMD_WARNING;
 	}
 
-	b = vty_argv_to_buffer(argc, argv, 0);
-	if (!b)
+	*dptr = argv_concat(argv, argc, 0);
+	if (!dptr)
 		return CMD_WARNING;
 
-	if (*dptr)
-		talloc_free(*dptr);
-
-	*dptr = talloc_strdup(NULL, buffer_getstr(b));
-
-	buffer_free(b);
-
 	return CMD_SUCCESS;
 }
 
diff --git a/openbsc/src/vty_interface_layer3.c b/openbsc/src/vty_interface_layer3.c
index b48b4a5..202518e 100644
--- a/openbsc/src/vty_interface_layer3.c
+++ b/openbsc/src/vty_interface_layer3.c
@@ -263,12 +263,12 @@
 	return sms;
 }
 
-static int _send_sms_buffer(struct gsm_subscriber *receiver,
-			     struct buffer *b, u_int8_t tp_pid)
+static int _send_sms_str(struct gsm_subscriber *receiver, char *str,
+			 u_int8_t tp_pid)
 {
 	struct gsm_sms *sms;
 
-	sms = sms_from_text(receiver, buffer_getstr(b));
+	sms = sms_from_text(receiver, str);
 	sms->protocol_id = tp_pid;
 	gsm411_send_sms_subscr(receiver, sms);
 
@@ -303,7 +303,7 @@
 	SUBSCR_HELP "SMS Operations\n" "Send SMS\n" "Actual SMS Text")
 {
 	struct gsm_subscriber *subscr = get_subscr_by_argv(argv[0], argv[1]);
-	struct buffer *b;
+	char *str;
 	int rc;
 
 	if (!subscr) {
@@ -311,9 +311,9 @@
 			argv[0], argv[1], VTY_NEWLINE);
 		return CMD_WARNING;
 	}
-	b = vty_argv_to_buffer(argc, argv, 2);
-	rc = _send_sms_buffer(subscr, b, 0);
-	buffer_free(b);
+	str = argv_concat(argv, argc, 2);
+	rc = _send_sms_str(subscr, str, 0);
+	talloc_free(str);
 
 	subscr_put(subscr);
 
@@ -327,7 +327,7 @@
 	"Silent SMS Operation\n" "Send Silent SMS\n" "Actual SMS text\n")
 {
 	struct gsm_subscriber *subscr = get_subscr_by_argv(argv[0], argv[1]);
-	struct buffer *b;
+	char *str;
 	int rc;
 
 	if (!subscr) {
@@ -336,9 +336,9 @@
 		return CMD_WARNING;
 	}
 
-	b = vty_argv_to_buffer(argc, argv, 2);
-	rc = _send_sms_buffer(subscr, b, 64);
-	buffer_free(b);
+	str = argv_concat(argv, argc, 2);
+	rc = _send_sms_str(subscr, str, 0);
+	talloc_free(str);
 
 	subscr_put(subscr);
 
