diff --git a/openbsc/src/gsm_04_11.c b/openbsc/src/gsm_04_11.c
index fc9b086..a7c6f66 100644
--- a/openbsc/src/gsm_04_11.c
+++ b/openbsc/src/gsm_04_11.c
@@ -117,6 +117,31 @@
 	talloc_free(sms);
 }
 
+struct gsm_sms *sms_from_text(struct gsm_subscriber *receiver, const char *text)
+{
+	struct gsm_sms *sms = sms_alloc();
+
+	if (!sms)
+		return NULL;
+
+	sms->receiver = subscr_get(receiver);
+	strncpy(sms->text, text, sizeof(sms->text)-1);
+
+	/* FIXME: don't use ID 1 static */
+	sms->sender = subscr_get_by_id(receiver->net, 1);
+	sms->reply_path_req = 0;
+	sms->status_rep_req = 0;
+	sms->ud_hdr_ind = 0;
+	sms->protocol_id = 0; /* implicit */
+	sms->data_coding_scheme = 0; /* default 7bit */
+	strncpy(sms->dest_addr, receiver->extension, sizeof(sms->dest_addr)-1);
+	/* Generate user_data */
+	sms->user_data_len = gsm_7bit_encode(sms->user_data, sms->text);
+
+	return sms;
+}
+
+
 static void send_signal(int sig_no,
 			struct gsm_trans *trans,
 			struct gsm_sms *sms,
diff --git a/openbsc/src/token_auth.c b/openbsc/src/token_auth.c
index f9a5839..733ea71 100644
--- a/openbsc/src/token_auth.c
+++ b/openbsc/src/token_auth.c
@@ -32,9 +32,6 @@
 #define TOKEN_SMS_TEXT "HAR 2009 GSM.  Register at http://har2009.gnumonks.org/ " \
 			"Your IMSI is %s, auth token is %08X, phone no is %s."
 
-extern struct gsm_sms *sms_from_text(struct gsm_subscriber *receiver,
-				     const char *text);
-
 static char *build_sms_string(struct gsm_subscriber *subscr, u_int32_t token)
 {
 	char *sms_str;
diff --git a/openbsc/src/vty_interface_layer3.c b/openbsc/src/vty_interface_layer3.c
index 3c888db..d13031b 100644
--- a/openbsc/src/vty_interface_layer3.c
+++ b/openbsc/src/vty_interface_layer3.c
@@ -141,30 +141,6 @@
 	return CMD_SUCCESS;
 }
 
-struct gsm_sms *sms_from_text(struct gsm_subscriber *receiver, const char *text)
-{
-	struct gsm_sms *sms = sms_alloc();
-
-	if (!sms)
-		return NULL;
-
-	sms->receiver = subscr_get(receiver);
-	strncpy(sms->text, text, sizeof(sms->text)-1);
-
-	/* FIXME: don't use ID 1 static */
-	sms->sender = subscr_get_by_id(receiver->net, 1);
-	sms->reply_path_req = 0;
-	sms->status_rep_req = 0;
-	sms->ud_hdr_ind = 0;
-	sms->protocol_id = 0; /* implicit */
-	sms->data_coding_scheme = 0; /* default 7bit */
-	strncpy(sms->dest_addr, receiver->extension, sizeof(sms->dest_addr)-1);
-	/* Generate user_data */
-	sms->user_data_len = gsm_7bit_encode(sms->user_data, sms->text);
-
-	return sms;
-}
-
 static int _send_sms_str(struct gsm_subscriber *receiver, char *str,
 			 u_int8_t tp_pid)
 {
