diff --git a/openbsc/src/vty/cardshell.h b/openbsc/src/vty/cardshell.h
deleted file mode 100644
index 85164d2..0000000
--- a/openbsc/src/vty/cardshell.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "../../bscconfig.h"
-#define QUAGGA_PROGNAME	PACKAGE_NAME
-#define QUAGGA_VERSION	PACKAGE_VERSION
-#define QUAGGA_COPYRIGHT "Harald Welte <laforge@gnumonks.org>"
-#define CONFIGFILE_MASK 022
-#define SYSCONFDIR "/usr/local/etc"
diff --git a/openbsc/src/vty/command.c b/openbsc/src/vty/command.c
index f45ecdd..5be0092 100644
--- a/openbsc/src/vty/command.c
+++ b/openbsc/src/vty/command.c
@@ -21,8 +21,6 @@
 Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 Boston, MA 02111-1307, USA.  */
 
-#include "cardshell.h"
-
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -44,6 +42,8 @@
 #include <openbsc/gsm_subscriber.h>
 #include <osmocore/talloc.h>
 
+#define CONFIGFILE_MASK 022
+
 void *tall_vty_cmd_ctx;
 
 /* Command vector which includes some level of command lists. Normally
@@ -81,16 +81,14 @@
 };
 
 /* Default motd string. */
-const char *default_motd = "\r\n\
-Hello, this is " QUAGGA_PROGNAME " (version " QUAGGA_VERSION ").\r\n\
-" QUAGGA_COPYRIGHT "\r\n\
-\r\n";
+const char *default_motd = "";
 
 /* This is called from main when a daemon is invoked with -v or --version. */
-void print_version(const char *progname)
+void print_version(int print_copyright)
 {
-	printf("%s version %s\n", progname, QUAGGA_VERSION);
-	printf("%s\n", QUAGGA_COPYRIGHT);
+	printf("%s version %s\n", host.prog_name, host.prog_version);
+	if (print_copyright)
+		printf("\n%s\n", host.prog_copyright);
 }
 
 /* Utility function to concatenate argv argument into a single string
@@ -2199,9 +2197,9 @@
 DEFUN(show_version,
       show_version_cmd, "show version", SHOW_STR "Displays program version\n")
 {
-	vty_out(vty, "%s %s (%s).%s", QUAGGA_PROGNAME, QUAGGA_VERSION,
+	vty_out(vty, "%s %s (%s).%s", host.prog_name, host.prog_version,
 		host.name ? host.name : "", VTY_NEWLINE);
-	vty_out(vty, "%s%s", QUAGGA_COPYRIGHT, VTY_NEWLINE);
+	vty_out(vty, "%s%s", host.prog_copyright, VTY_NEWLINE);
 
 	return CMD_SUCCESS;
 }
@@ -2294,7 +2292,8 @@
 	file_vty->type = VTY_FILE;
 
 	/* Config file header print. */
-	vty_out(file_vty, "!\n! OpenBSC configuration saved from vty\n!   ");
+	vty_out(file_vty, "!\n! %s (%s) configuration saved from vty\n!",
+		host.prog_name, host.prog_version);
 	//vty_time_print (file_vty, 1);
 	vty_out(file_vty, "!\n");
 
diff --git a/openbsc/src/vty/vty.c b/openbsc/src/vty/vty.c
index 7a6ad97..e5b5b48 100644
--- a/openbsc/src/vty/vty.c
+++ b/openbsc/src/vty/vty.c
@@ -13,12 +13,13 @@
 
 #include <arpa/telnet.h>
 
-#include "cardshell.h"
 #include <vty/vty.h>
 #include <vty/command.h>
 #include <vty/buffer.h>
 #include <osmocore/talloc.h>
 
+#define SYSCONFDIR "/usr/local/etc"
+
 /* our callback, located in telnet_interface.c */
 void vty_event(enum event event, int sock, struct vty *vty);
 
@@ -468,6 +469,7 @@
 	vty->hp = vty->hindex;
 }
 
+#define TELNET_OPTION_DEBUG
 /* Get telnet window size. */
 static int
 vty_telnet_option (struct vty *vty, unsigned char *buf, int nbytes)
@@ -1631,8 +1633,12 @@
 
 extern void *tall_bsc_ctx;
 /* Install vty's own commands like `who' command. */
-void vty_init()
+void vty_init(const char *name, const char *version, const char *copyright)
 {
+	host.prog_name = name;
+	host.prog_version = version;
+	host.prog_copyright = copyright;
+
 	tall_vty_ctx = talloc_named_const(NULL, 0, "vty");
 	tall_vty_vec_ctx = talloc_named_const(tall_vty_ctx, 0, "vty_vector");
 	tall_vty_cmd_ctx = talloc_named_const(tall_vty_ctx, 0, "vty_command");
