Index: uspace/app/bdsh/cmds/builtins/cd/cd.c
===================================================================
--- uspace/app/bdsh/cmds/builtins/cd/cd.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/bdsh/cmds/builtins/cd/cd.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -41,5 +41,5 @@
 #include "cd.h"
 
-static char * cmdname = "cd";
+static const char *cmdname = "cd";
 
 void help_cmd_cd(unsigned int level)
Index: uspace/app/bdsh/cmds/cmds.h
===================================================================
--- uspace/app/bdsh/cmds/cmds.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/bdsh/cmds/cmds.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -33,6 +33,6 @@
 /* Module structure */
 typedef struct {
-	char *name;         /* Name of the command */
-	char *desc;         /* Description of the command */
+	const char *name;   /* Name of the command */
+	const char *desc;   /* Description of the command */
 	mod_entry_t entry;  /* Command (exec) entry function */
 	mod_help_t help;    /* Command (help) entry function */
@@ -41,6 +41,6 @@
 /* Builtin structure, same as modules except different types of entry points */
 typedef struct {
-	char *name;
-	char *desc;
+	const char *name;
+	const char *desc;
 	builtin_entry_t entry;
 	builtin_help_t help;
@@ -57,5 +57,5 @@
 extern int is_module(const char *);
 extern int is_module_alias(const char *);
-extern char * alias_for_module(const char *);
+extern char *alias_for_module(const char *);
 extern int help_module(int, unsigned int);
 extern int run_module(int, char *[]);
@@ -65,5 +65,5 @@
 extern int is_builtin(const char *);
 extern int is_builtin_alias(const char *);
-extern char * alias_for_builtin(const char *);
+extern char *alias_for_builtin(const char *);
 extern int help_builtin(int, unsigned int);
 extern int run_builtin(int, char *[], cliuser_t *);
Index: uspace/app/bdsh/cmds/modules/cat/cat.c
===================================================================
--- uspace/app/bdsh/cmds/modules/cat/cat.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/bdsh/cmds/modules/cat/cat.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -43,9 +43,9 @@
 #include "cmds.h"
 
-static char *cmdname = "cat";
+static const char *cmdname = "cat";
 #define CAT_VERSION "0.0.1"
 #define CAT_DEFAULT_BUFLEN 1024
 
-static char *cat_oops = "That option is not yet supported\n";
+static const char *cat_oops = "That option is not yet supported\n";
 
 static struct option const long_options[] = {
Index: uspace/app/bdsh/cmds/modules/help/help.c
===================================================================
--- uspace/app/bdsh/cmds/modules/help/help.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/bdsh/cmds/modules/help/help.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -42,5 +42,5 @@
 #include "util.h"
 
-static char *cmdname = "help";
+static const char *cmdname = "help";
 extern const char *progname;
 
Index: uspace/app/bdsh/cmds/modules/kcon/kcon.c
===================================================================
--- uspace/app/bdsh/cmds/modules/kcon/kcon.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/bdsh/cmds/modules/kcon/kcon.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -40,5 +40,5 @@
 #include "cmds.h"
 
-static char *cmdname = "kcon";
+static const char *cmdname = "kcon";
 
 /* Dispays help for kcon in various levels */
Index: uspace/app/bdsh/cmds/modules/ls/ls.c
===================================================================
--- uspace/app/bdsh/cmds/modules/ls/ls.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/bdsh/cmds/modules/ls/ls.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -49,5 +49,5 @@
 #include "cmds.h"
 
-static char *cmdname = "ls";
+static const char *cmdname = "ls";
 
 static void ls_scan_dir(const char *d, DIR *dirp)
Index: uspace/app/bdsh/cmds/modules/mkdir/mkdir.c
===================================================================
--- uspace/app/bdsh/cmds/modules/mkdir/mkdir.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/bdsh/cmds/modules/mkdir/mkdir.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -49,5 +49,5 @@
 #define MKDIR_VERSION "0.0.1"
 
-static char *cmdname = "mkdir";
+static const char *cmdname = "mkdir";
 
 static struct option const long_options[] = {
Index: uspace/app/bdsh/cmds/modules/mkfile/mkfile.c
===================================================================
--- uspace/app/bdsh/cmds/modules/mkfile/mkfile.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/bdsh/cmds/modules/mkfile/mkfile.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -51,5 +51,5 @@
 #define BUFFER_SIZE 16384
 
-static char *cmdname = "mkfile";
+static const char *cmdname = "mkfile";
 
 static struct option const long_options[] = {
Index: uspace/app/bdsh/cmds/modules/module_aliases.h
===================================================================
--- uspace/app/bdsh/cmds/modules/module_aliases.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/bdsh/cmds/modules/module_aliases.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -12,5 +12,5 @@
  * the entry point being reached. */
 
-char *mod_aliases[] = {
+const char *mod_aliases[] = {
 	"ren", "mv",
 	"umount", "unmount",
Index: uspace/app/bdsh/cmds/modules/mount/mount.c
===================================================================
--- uspace/app/bdsh/cmds/modules/mount/mount.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/bdsh/cmds/modules/mount/mount.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -58,5 +58,5 @@
 {
 	unsigned int argc;
-	char *mopts = "";
+	const char *mopts = "";
 	int rc;
 
Index: uspace/app/bdsh/cmds/modules/pwd/pwd.c
===================================================================
--- uspace/app/bdsh/cmds/modules/pwd/pwd.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/bdsh/cmds/modules/pwd/pwd.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -39,5 +39,5 @@
 #include "pwd.h"
 
-static char * cmdname = "pwd";
+static const char *cmdname = "pwd";
 
 void help_cmd_pwd(unsigned int level)
Index: uspace/app/bdsh/cmds/modules/rm/rm.c
===================================================================
--- uspace/app/bdsh/cmds/modules/rm/rm.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/bdsh/cmds/modules/rm/rm.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -45,5 +45,5 @@
 #include "cmds.h"
 
-static char *cmdname = "rm";
+static const char *cmdname = "rm";
 #define RM_VERSION "0.0.1"
 
Index: uspace/app/bdsh/cmds/modules/sleep/sleep.c
===================================================================
--- uspace/app/bdsh/cmds/modules/sleep/sleep.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/bdsh/cmds/modules/sleep/sleep.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -38,5 +38,5 @@
 #include "cmds.h"
 
-static char *cmdname = "sleep";
+static const char *cmdname = "sleep";
 
 /* Dispays help for sleep in various levels */
Index: uspace/app/bdsh/cmds/modules/touch/touch.c
===================================================================
--- uspace/app/bdsh/cmds/modules/touch/touch.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/bdsh/cmds/modules/touch/touch.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -47,5 +47,5 @@
 #include "cmds.h"
 
-static char *cmdname = "touch";
+static const char *cmdname = "touch";
 
 /* Dispays help for touch in various levels */
Index: uspace/app/bdsh/errors.c
===================================================================
--- uspace/app/bdsh/errors.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/bdsh/errors.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -47,5 +47,5 @@
 /* Look up errno in cl_errors and return the corresponding string.
  * Return NULL if not found */
-static char *err2str(int err)
+static const char *err2str(int err)
 {
 
Index: uspace/app/bdsh/errstr.h
===================================================================
--- uspace/app/bdsh/errstr.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/bdsh/errstr.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -4,5 +4,5 @@
 /* Simple array to translate error codes to meaningful strings */
 
-static char *cl_errors[] = {
+static const char *cl_errors[] = {
 	"Success",
 	"Failure",
@@ -18,5 +18,5 @@
 };
 
-static char *err2str(int);
+static const char *err2str(int);
 
 #endif
Index: uspace/app/bdsh/exec.c
===================================================================
--- uspace/app/bdsh/exec.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/bdsh/exec.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -120,5 +120,5 @@
 	free(found);
 
-	tid = task_spawn((const char *)tmp, argv);
+	tid = task_spawn(tmp, (const char **) argv);
 	free(tmp);
 
Index: uspace/app/bdsh/exec.h
===================================================================
--- uspace/app/bdsh/exec.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/bdsh/exec.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -5,3 +5,4 @@
 
 extern unsigned int try_exec(char *, char **);
+
 #endif
Index: uspace/app/bdsh/scli.h
===================================================================
--- uspace/app/bdsh/scli.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/bdsh/scli.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -6,5 +6,5 @@
 
 typedef struct {
-	char *name;
+	const char *name;
 	char *line;
 	char *cwd;
Index: uspace/app/edit/edit.c
===================================================================
--- uspace/app/edit/edit.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/edit/edit.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -475,8 +475,7 @@
 static void file_save_as(void)
 {
-	char *old_fname, *fname;
-	int rc;
-
-	old_fname = (doc.file_name != NULL) ? doc.file_name : "";
+	const char *old_fname = (doc.file_name != NULL) ? doc.file_name : "";
+	char *fname;
+	
 	fname = filename_prompt("Save As", old_fname);
 	if (fname == NULL) {
@@ -485,5 +484,5 @@
 	}
 
-	rc = file_save(fname);
+	int rc = file_save(fname);
 	if (rc != EOK)
 		return;
@@ -819,15 +818,13 @@
 	spt_t caret_pt;
 	coord_t coord;
-	char *fname;
-	int n;
 
 	tag_get_pt(&pane.caret_pos, &caret_pt);
 	spt_get_coord(&caret_pt, &coord);
 
-	fname = (doc.file_name != NULL) ? doc.file_name : "<unnamed>";
+	const char *fname = (doc.file_name != NULL) ? doc.file_name : "<unnamed>";
 
 	console_goto(con, 0, scr_rows - 1);
 	console_set_color(con, COLOR_WHITE, COLOR_BLACK, 0);
-	n = printf(" %d, %d: File '%s'. Ctrl-Q Quit  Ctrl-S Save  "
+	int n = printf(" %d, %d: File '%s'. Ctrl-Q Quit  Ctrl-S Save  "
 	    "Ctrl-E Save As", coord.row, coord.column, fname);
 	printf("%*s", scr_columns - 1 - n, "");
Index: uspace/app/getterm/getterm.c
===================================================================
--- uspace/app/getterm/getterm.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/getterm/getterm.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -69,7 +69,7 @@
 }
 
-static task_id_t spawn(char *fname)
+static task_id_t spawn(const char *fname)
 {
-	char *args[2];
+	const char *args[2];
 	
 	args[0] = fname;
Index: uspace/app/getterm/version.c
===================================================================
--- uspace/app/getterm/version.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/getterm/version.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -40,18 +40,18 @@
 #include "version.h"
 
-static char *release = STRING(RELEASE);
-static char *name = STRING(NAME);
-static char *arch = STRING(UARCH);
+static const char *release = STRING(RELEASE);
+static const char *name = STRING(NAME);
+static const char *arch = STRING(UARCH);
 
 #ifdef REVISION
-	static char *revision = ", revision " STRING(REVISION);
+	static const char *revision = ", revision " STRING(REVISION);
 #else
-	static char *revision = "";
+	static const char *revision = "";
 #endif
 
 #ifdef TIMESTAMP
-	static char *timestamp = "\nBuilt on " STRING(TIMESTAMP);
+	static const char *timestamp = "\nBuilt on " STRING(TIMESTAMP);
 #else
-	static char *timestamp = "";
+	static const char *timestamp = "";
 #endif
 
Index: uspace/app/init/init.c
===================================================================
--- uspace/app/init/init.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/init/init.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -62,5 +62,5 @@
 static bool mount_root(const char *fstype)
 {
-	char *opts = "";
+	const char *opts = "";
 	const char *root_dev = "bd/initrd";
 	
@@ -117,7 +117,7 @@
 }
 
-static void spawn(char *fname)
-{
-	char *argv[2];
+static void spawn(const char *fname)
+{
+	const char *argv[2];
 	struct stat s;
 	
@@ -134,7 +134,7 @@
 }
 
-static void srv_start(char *fname)
-{
-	char *argv[2];
+static void srv_start(const char *fname)
+{
+	const char *argv[2];
 	task_id_t id;
 	task_exit_t texit;
@@ -168,7 +168,7 @@
 }
 
-static void console(char *dev)
-{
-	char *argv[3];
+static void console(const char *dev)
+{
+	const char *argv[3];
 	char hid_in[DEVMAP_NAME_MAXLEN];
 	int rc;
@@ -193,7 +193,7 @@
 }
 
-static void getterm(char *dev, char *app)
-{
-	char *argv[4];
+static void getterm(const char *dev, const char *app)
+{
+	const char *argv[4];
 	char term[DEVMAP_NAME_MAXLEN];
 	int rc;
Index: uspace/app/redir/redir.c
===================================================================
--- uspace/app/redir/redir.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/redir/redir.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -72,5 +72,5 @@
 static task_id_t spawn(int argc, char *argv[])
 {
-	char **args = (char **) calloc(argc + 1, sizeof(char *));
+	const char **args = (const char **) calloc(argc + 1, sizeof(char *));
 	if (!args) {
 		printf("No memory available\n");
Index: uspace/app/tester/console/console1.c
===================================================================
--- uspace/app/tester/console/console1.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tester/console/console1.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -36,5 +36,5 @@
 #include "../tester.h"
 
-const char *color_name[] = {
+static const char *color_name[] = {
 	[COLOR_BLACK] = "black",
 	[COLOR_BLUE] = "blue",
@@ -47,5 +47,5 @@
 };
 
-char *test_console1(void)
+const char *test_console1(void)
 {
 	if (!test_quiet) {
Index: uspace/app/tester/fault/fault1.c
===================================================================
--- uspace/app/tester/fault/fault1.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tester/fault/fault1.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -30,5 +30,5 @@
 #include "../tester.h"
 
-char *test_fault1(void)
+const char *test_fault1(void)
 {
 	((int *)(0))[1] = 0;
Index: uspace/app/tester/fault/fault2.c
===================================================================
--- uspace/app/tester/fault/fault2.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tester/fault/fault2.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -32,5 +32,5 @@
 typedef int __attribute__((may_alias)) aliasing_int;
 
-char *test_fault2(void)
+const char *test_fault2(void)
 {
 	volatile long long var;
Index: uspace/app/tester/fault/fault3.c
===================================================================
--- uspace/app/tester/fault/fault3.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tester/fault/fault3.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -30,5 +30,5 @@
 #include <stdlib.h>
 
-char *test_fault3(void)
+const char *test_fault3(void)
 {
 	abort();
Index: uspace/app/tester/ipc/connect.c
===================================================================
--- uspace/app/tester/ipc/connect.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tester/ipc/connect.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -39,5 +39,5 @@
 }
 
-char *test_connect(void)
+const char *test_connect(void)
 {
 	TPRINTF("Connecting to %u...", IPC_TEST_SERVICE);
Index: uspace/app/tester/ipc/ping_pong.c
===================================================================
--- uspace/app/tester/ipc/ping_pong.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tester/ipc/ping_pong.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -38,5 +38,5 @@
 #define COUNT_GRANULARITY  100
 
-char *test_ping_pong(void)
+const char *test_ping_pong(void)
 {
 	TPRINTF("Pinging ns server for %d seconds...", DURATION_SECS);
Index: uspace/app/tester/ipc/register.c
===================================================================
--- uspace/app/tester/ipc/register.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tester/ipc/register.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -74,5 +74,5 @@
 }
 
-char *test_register(void)
+const char *test_register(void)
 {
 	async_set_client_connection(client_connection);
Index: uspace/app/tester/loop/loop1.c
===================================================================
--- uspace/app/tester/loop/loop1.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tester/loop/loop1.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -31,5 +31,5 @@
 #include "../tester.h"
 
-char *test_loop1(void)
+const char *test_loop1(void)
 {
 	TPRINTF("Looping...");
Index: uspace/app/tester/mm/malloc1.c
===================================================================
--- uspace/app/tester/mm/malloc1.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tester/mm/malloc1.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -73,5 +73,5 @@
 
 typedef struct {
-	char *name;
+	const char *name;
 	sp_term_cond_s cond;
 	sp_action_prob_s prob;
@@ -90,5 +90,5 @@
 
 typedef struct {
-	char *name;
+	const char *name;
 	ph_alloc_size_s alloc;
 	subphase_s *subphases;
@@ -628,5 +628,5 @@
 }
 
-char *test_malloc1(void)
+const char *test_malloc1(void)
 {
 	init_mem();
Index: uspace/app/tester/print/print1.c
===================================================================
--- uspace/app/tester/print/print1.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tester/print/print1.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -31,5 +31,5 @@
 #include "../tester.h"
 
-char *test_print1(void)
+const char *test_print1(void)
 {
 	TPRINTF("Testing printf(\"%%*.*s\", 5, 3, \"text\"):\n");
Index: uspace/app/tester/print/print2.c
===================================================================
--- uspace/app/tester/print/print2.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tester/print/print2.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -31,5 +31,5 @@
 #include "../tester.h"
 
-char *test_print2(void)
+const char *test_print2(void)
 {
 	TPRINTF("Testing printf(\"%%c %%3.2c %%-3.2c %%2.3c %%-2.3c\", 'a', 'b', 'c', 'd', 'e'):\n");
Index: uspace/app/tester/print/print3.c
===================================================================
--- uspace/app/tester/print/print3.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tester/print/print3.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -34,5 +34,5 @@
 #define BUFFER_SIZE  32
 
-char *test_print3(void)
+const char *test_print3(void)
 {
 	char buffer[BUFFER_SIZE];
Index: uspace/app/tester/print/print4.c
===================================================================
--- uspace/app/tester/print/print4.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tester/print/print4.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -31,5 +31,5 @@
 #include "../tester.h"
 
-char *test_print4(void)
+const char *test_print4(void)
 {
 	TPRINTF("ASCII printable characters (32 - 127) using printf(\"%%c\") and printf(\"%%lc\"):\n");
Index: uspace/app/tester/stdio/stdio1.c
===================================================================
--- uspace/app/tester/stdio/stdio1.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tester/stdio/stdio1.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -36,8 +36,8 @@
 static char buf[BUF_SIZE + 1];
 
-char *test_stdio1(void)
+const char *test_stdio1(void)
 {
 	FILE *file;
-	char *file_name = "/readme";
+	const char *file_name = "/readme";
 	
 	TPRINTF("Open file \"%s\"...", file_name);
Index: uspace/app/tester/stdio/stdio2.c
===================================================================
--- uspace/app/tester/stdio/stdio2.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tester/stdio/stdio2.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -32,8 +32,8 @@
 #include "../tester.h"
 
-char *test_stdio2(void)
+const char *test_stdio2(void)
 {
 	FILE *file;
-	char *file_name = "/test";
+	const char *file_name = "/test";
 	
 	TPRINTF("Open file \"%s\" for writing...", file_name);
Index: uspace/app/tester/tester.c
===================================================================
--- uspace/app/tester/tester.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tester/tester.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -69,5 +69,5 @@
 {
 	/* Execute the test */
-	char *ret = test->entry();
+	const char *ret = test->entry();
 	
 	if (ret == NULL) {
Index: uspace/app/tester/tester.h
===================================================================
--- uspace/app/tester/tester.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tester/tester.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -54,30 +54,30 @@
 	}
 
-typedef char *(*test_entry_t)(void);
+typedef const char *(*test_entry_t)(void);
 
 typedef struct {
-	char *name;
-	char *desc;
+	const char *name;
+	const char *desc;
 	test_entry_t entry;
 	bool safe;
 } test_t;
 
-extern char *test_thread1(void);
-extern char *test_print1(void);
-extern char *test_print2(void);
-extern char *test_print3(void);
-extern char *test_print4(void);
-extern char *test_console1(void);
-extern char *test_stdio1(void);
-extern char *test_stdio2(void);
-extern char *test_fault1(void);
-extern char *test_fault2(void);
-extern char *test_fault3(void);
-extern char *test_vfs1(void);
-extern char *test_ping_pong(void);
-extern char *test_register(void);
-extern char *test_connect(void);
-extern char *test_loop1(void);
-extern char *test_malloc1(void);
+extern const char *test_thread1(void);
+extern const char *test_print1(void);
+extern const char *test_print2(void);
+extern const char *test_print3(void);
+extern const char *test_print4(void);
+extern const char *test_console1(void);
+extern const char *test_stdio1(void);
+extern const char *test_stdio2(void);
+extern const char *test_fault1(void);
+extern const char *test_fault2(void);
+extern const char *test_fault3(void);
+extern const char *test_vfs1(void);
+extern const char *test_ping_pong(void);
+extern const char *test_register(void);
+extern const char *test_connect(void);
+extern const char *test_loop1(void);
+extern const char *test_malloc1(void);
 
 extern test_t tests[];
Index: uspace/app/tester/thread/thread1.c
===================================================================
--- uspace/app/tester/thread/thread1.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tester/thread/thread1.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -50,5 +50,5 @@
 }
 
-char *test_thread1(void)
+const char *test_thread1(void)
 {
 	unsigned int i;
Index: uspace/app/tester/vfs/vfs1.c
===================================================================
--- uspace/app/tester/vfs/vfs1.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tester/vfs/vfs1.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -54,5 +54,5 @@
 static char text[] = "Lorem ipsum dolor sit amet, consectetur adipisicing elit";
 
-static char *read_root(void)
+static const char *read_root(void)
 {
 	TPRINTF("Opening the root directory...");
@@ -73,5 +73,5 @@
 }
 
-char *test_vfs1(void)
+const char *test_vfs1(void)
 {
 	if (mkdir(MOUNT_POINT, 0) != 0)
@@ -121,5 +121,5 @@
 	close(fd0);
 	
-	char *rv = read_root();
+	const char *rv = read_root();
 	if (rv != NULL)
 		return rv;
Index: uspace/app/tetris/screen.c
===================================================================
--- uspace/app/tetris/screen.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tetris/screen.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -72,5 +72,5 @@
  * simply literal strings);
  */
-static inline void putstr(char *s)
+static inline void putstr(const char *s)
 {
 	while (*s)
@@ -181,5 +181,5 @@
 }
 
-void stop(char *why)
+void stop(const char *why)
 {
 	if (isset)
Index: uspace/app/tetris/tetris.h
===================================================================
--- uspace/app/tetris/tetris.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tetris/tetris.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -186,5 +186,5 @@
 extern int fits_in(const struct shape *, int);
 extern void place(const struct shape *, int, int);
-extern void stop(char *);
+extern void stop(const char *);
 
 /** @}
Index: uspace/app/trace/errors.h
===================================================================
--- uspace/app/trace/errors.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/trace/errors.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -37,6 +37,6 @@
 
 typedef struct {
-	char *name;	/**< Error value name (Exx) */
-	char *desc;	/**< Error description */
+	const char *name;  /**< Error value name (Exx) */
+	const char *desc;  /**< Error description */
 } err_desc_t;
 
Index: uspace/app/trace/ipc_desc.h
===================================================================
--- uspace/app/trace/ipc_desc.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/trace/ipc_desc.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -38,5 +38,5 @@
 typedef struct {
 	int number;
-	char *name;
+	const char *name;
 } ipc_m_desc_t;
 
Index: uspace/app/trace/proto.c
===================================================================
--- uspace/app/trace/proto.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/trace/proto.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -157,5 +157,5 @@
 }
 
-static void proto_struct_init(proto_t *proto, char *name)
+static void proto_struct_init(proto_t *proto, const char *name)
 {
 	proto->name = name;
@@ -164,5 +164,5 @@
 }
 
-proto_t *proto_new(char *name)
+proto_t *proto_new(const char *name)
 {
 	proto_t *p;
@@ -206,10 +206,10 @@
 }
 
-static void oper_struct_init(oper_t *oper, char *name)
+static void oper_struct_init(oper_t *oper, const char *name)
 {
 	oper->name = name;
 }
 
-oper_t *oper_new(char *name, int argc, val_type_t *arg_types,
+oper_t *oper_new(const char *name, int argc, val_type_t *arg_types,
     val_type_t rv_type, int respc, val_type_t *resp_types)
 {
Index: uspace/app/trace/proto.h
===================================================================
--- uspace/app/trace/proto.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/trace/proto.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -43,5 +43,5 @@
 
 typedef struct {
-	char *name;
+	const char *name;
 
 	int argc;
@@ -56,5 +56,5 @@
 typedef struct {
 	/** Protocol name */
-	char *name;
+	const char *name;
 
 	/** Maps method number to operation */
@@ -70,10 +70,10 @@
 void proto_register(int srv, proto_t *proto);
 proto_t *proto_get_by_srv(int srv);
-proto_t *proto_new(char *name);
+proto_t *proto_new(const char *name);
 void proto_delete(proto_t *proto);
 void proto_add_oper(proto_t *proto, int method, oper_t *oper);
 oper_t *proto_get_oper(proto_t *proto, int method);
 
-oper_t *oper_new(char *name, int argc, val_type_t *arg_types,
+oper_t *oper_new(const char *name, int argc, val_type_t *arg_types,
     val_type_t rv_type, int respc, val_type_t *resp_types);
 
Index: uspace/app/trace/syscalls.h
===================================================================
--- uspace/app/trace/syscalls.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/trace/syscalls.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -39,5 +39,5 @@
 
 typedef struct {
-	char *name;
+	const char *name;
 	int n_args;
 	val_type_t rv_type;
Index: uspace/app/trace/trace.c
===================================================================
--- uspace/app/trace/trace.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/trace/trace.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -585,5 +585,5 @@
 }
 
-static loader_t *preload_task(const char *path, char *const argv[],
+static loader_t *preload_task(const char *path, char **argv,
     task_id_t *task_id)
 {
@@ -591,5 +591,5 @@
 	int rc;
 
-	/* Spawn a program loader */	
+	/* Spawn a program loader */
 	ldr = loader_connect();
 	if (ldr == NULL)
@@ -607,5 +607,5 @@
 
 	/* Send arguments */
-	rc = loader_set_args(ldr, argv);
+	rc = loader_set_args(ldr, (const char **) argv);
 	if (rc != EOK)
 		goto error;
@@ -870,25 +870,31 @@
 }
 
-static display_mask_t parse_display_mask(char *text)
+static display_mask_t parse_display_mask(const char *text)
 {
 	display_mask_t dm;
-	char *c;
-
-	c = text;
-
+	const char *c = text;
+	
 	while (*c) {
 		switch (*c) {
-		case 't': dm = dm | DM_THREAD; break;
-		case 's': dm = dm | DM_SYSCALL; break;
-		case 'i': dm = dm | DM_IPC; break;
-		case 'p': dm = dm | DM_SYSTEM | DM_USER; break;
+		case 't':
+			dm = dm | DM_THREAD;
+			break;
+		case 's':
+			dm = dm | DM_SYSCALL;
+			break;
+		case 'i':
+			dm = dm | DM_IPC;
+			break;
+		case 'p':
+			dm = dm | DM_SYSTEM | DM_USER;
+			break;
 		default:
 			printf("Unexpected event type '%c'.\n", *c);
 			exit(1);
 		}
-
+		
 		++c;
 	}
-
+	
 	return dm;
 }
@@ -896,13 +902,13 @@
 static int parse_args(int argc, char *argv[])
 {
-	char *arg;
 	char *err_p;
 
 	task_id = 0;
 
-	--argc; ++argv;
+	--argc;
+	++argv;
 
 	while (argc > 0) {
-		arg = *argv;
+		char *arg = *argv;
 		if (arg[0] == '+') {
 			display_mask = parse_display_mask(&arg[1]);
@@ -910,5 +916,6 @@
 			if (arg[1] == 't') {
 				/* Trace an already running task */
-				--argc; ++argv;
+				--argc;
+				++argv;
 				task_id = strtol(*argv, &err_p, 10);
 				task_ldr = NULL;
@@ -927,10 +934,12 @@
 			break;
 		}
-
-		--argc; ++argv;
+		
+		--argc;
+		++argv;
 	}
 
 	if (task_id != 0) {
-		if (argc == 0) return 0;
+		if (argc == 0)
+			return 0;
 		printf("Extra arguments\n");
 		print_syntax();
@@ -946,8 +955,9 @@
 	/* Preload the specified program file. */
 	printf("Spawning '%s' with arguments:\n", *argv);
-	{
-		char **cp = argv;
-		while (*cp) printf("'%s'\n", *cp++);
-	}
+	
+	char **cp = argv;
+	while (*cp)
+		printf("'%s'\n", *cp++);
+	
 	task_ldr = preload_task(*argv, argv, &task_id);
 	task_wait_for = true;
Index: uspace/lib/libc/Makefile.toolchain
===================================================================
--- uspace/lib/libc/Makefile.toolchain	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/lib/libc/Makefile.toolchain	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -27,22 +27,26 @@
 #
 
-GCC_CFLAGS = -I$(LIBC_PREFIX)/include -O3 -imacros $(LIBC_PREFIX)/../../../config.h \
+OPTIMIZATION = 3
+
+GCC_CFLAGS = -I$(LIBC_PREFIX)/include -O$(OPTIMIZATION) -imacros $(LIBC_PREFIX)/../../../config.h \
 	-fexec-charset=UTF-8 -fwide-exec-charset=UTF-32$(ENDIANESS) \
 	-finput-charset=UTF-8 -ffreestanding -fno-builtin -nostdlib -nostdinc \
 	-Wall -Wextra -Wno-clobbered -Wno-unused-parameter -Wmissing-prototypes \
-	-Werror-implicit-function-declaration -Werror -pipe -g -D__$(ENDIANESS)__
+	-Werror-implicit-function-declaration -Wwrite-strings \
+	-Werror -pipe -g -D__$(ENDIANESS)__
 
-ICC_CFLAGS = -I$(LIBC_PREFIX)/include -O3 -imacros $(LIBC_PREFIX)/../../../config.h \
+ICC_CFLAGS = -I$(LIBC_PREFIX)/include -O$(OPTIMIZATION) -imacros $(LIBC_PREFIX)/../../../config.h \
+	-fexec-charset=UTF-8 -fwide-exec-charset=UTF-32$(ENDIANESS) \
+	-finput-charset=UTF-8 -ffreestanding -fno-builtin -nostdlib -nostdinc \
+	-Wall -Wextra -Wno-clobbered -Wno-unused-parameter -Wmissing-prototypes \
+	-Werror-implicit-function-declaration -Wwrite-strings \
+	-Werror -pipe -g -D__$(ENDIANESS)__
+
+CLANG_CFLAGS = -I$(LIBC_PREFIX)/include -O$(OPTIMIZATION) -imacros $(LIBC_PREFIX)/../../../config.h \
 	-fexec-charset=UTF-8 -fwide-exec-charset=UTF-32$(ENDIANESS) \
 	-finput-charset=UTF-8 -ffreestanding -fno-builtin -nostdlib -nostdinc \
 	-Wall -Wextra -Wno-unused-parameter -Wmissing-prototypes \
-	-Werror-implicit-function-declaration -Werror -pipe -g -D__$(ENDIANESS)__
-
-CLANG_CFLAGS = -I$(LIBC_PREFIX)/include -O3 -imacros $(LIBC_PREFIX)/../../../config.h \
-	-fexec-charset=UTF-8 -fwide-exec-charset=UTF-32$(ENDIANESS) \
-	-finput-charset=UTF-8 -ffreestanding -fno-builtin -nostdlib -nostdinc \
-	-Wall -Wextra -Wno-unused-parameter -Wmissing-prototypes \
-	-Werror-implicit-function-declaration -pipe -g -arch $(CLANG_ARCH) \
-	-D__$(ENDIANESS)__
+	-Werror-implicit-function-declaration -Wwrite-strings \
+	-pipe -g -arch $(CLANG_ARCH) -D__$(ENDIANESS)__
 
 LFLAGS = -M -N $(SOFTINT_PREFIX)/libsoftint.a
Index: uspace/lib/libc/generic/loader.c
===================================================================
--- uspace/lib/libc/generic/loader.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/lib/libc/generic/loader.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -183,5 +183,5 @@
  *
  */
-int loader_set_args(loader_t *ldr, char *const argv[])
+int loader_set_args(loader_t *ldr, const char *const argv[])
 {
 	/*
@@ -189,5 +189,5 @@
 	 * compute size of the buffer needed.
 	 */
-	char *const *ap = argv;
+	const char *const *ap = argv;
 	size_t buffer_size = 0;
 	while (*ap != NULL) {
Index: uspace/lib/libc/generic/sysinfo.c
===================================================================
--- uspace/lib/libc/generic/sysinfo.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/lib/libc/generic/sysinfo.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -37,7 +37,7 @@
 #include <string.h>
 
-sysarg_t sysinfo_value(char *name)
+sysarg_t sysinfo_value(const char *name)
 {
-	return __SYSCALL2(SYS_SYSINFO_VALUE, (sysarg_t ) name,
+	return __SYSCALL2(SYS_SYSINFO_VALUE, (sysarg_t) name,
 	    (sysarg_t) str_size(name));
 }
Index: uspace/lib/libc/generic/task.c
===================================================================
--- uspace/lib/libc/generic/task.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/lib/libc/generic/task.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -76,5 +76,5 @@
  *
  */
-task_id_t task_spawn(const char *path, char *const args[])
+task_id_t task_spawn(const char *path, const char *const args[])
 {
 	/* Connect to a program loader. */
Index: uspace/lib/libc/generic/thread.c
===================================================================
--- uspace/lib/libc/generic/thread.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/lib/libc/generic/thread.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -86,5 +86,5 @@
  * @return Zero on success or a code from @ref errno.h on failure.
  */
-int thread_create(void (* function)(void *), void *arg, char *name,
+int thread_create(void (* function)(void *), void *arg, const char *name,
     thread_id_t *tid)
 {
Index: uspace/lib/libc/include/loader/loader.h
===================================================================
--- uspace/lib/libc/include/loader/loader.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/lib/libc/include/loader/loader.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -51,5 +51,5 @@
 extern int loader_set_cwd(loader_t *);
 extern int loader_set_pathname(loader_t *, const char *);
-extern int loader_set_args(loader_t *, char *const[]);
+extern int loader_set_args(loader_t *, const char *const[]);
 extern int loader_set_files(loader_t *, fdi_node_t *const[]);
 extern int loader_load_program(loader_t *);
Index: uspace/lib/libc/include/sysinfo.h
===================================================================
--- uspace/lib/libc/include/sysinfo.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/lib/libc/include/sysinfo.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -40,5 +40,5 @@
 #include <string.h>
 
-sysarg_t sysinfo_value(char *name);
+sysarg_t sysinfo_value(const char *name);
 
 #endif
Index: uspace/lib/libc/include/task.h
===================================================================
--- uspace/lib/libc/include/task.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/lib/libc/include/task.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -47,5 +47,5 @@
 extern task_id_t task_get_id(void);
 extern int task_set_name(const char *name);
-extern task_id_t task_spawn(const char *path, char *const argv[]);
+extern task_id_t task_spawn(const char *path, const char *const argv[]);
 extern int task_wait(task_id_t id, task_exit_t *texit, int *retval);
 extern int task_retval(int val);
Index: uspace/lib/libc/include/thread.h
===================================================================
--- uspace/lib/libc/include/thread.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/lib/libc/include/thread.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -45,5 +45,5 @@
 extern void __thread_main(uspace_arg_t *);
 
-extern int thread_create(void (*)(void *), void *, char *, thread_id_t *);
+extern int thread_create(void (*)(void *), void *, const char *, thread_id_t *);
 extern void thread_exit(int) __attribute__ ((noreturn));
 extern void thread_detach(thread_id_t);
Index: uspace/lib/libpci/access.c
===================================================================
--- uspace/lib/libpci/access.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/lib/libpci/access.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -51,5 +51,5 @@
 }
 
-static void pci_generic_error(char *msg, ...)
+static void pci_generic_error(const char *msg, ...)
 {
 	va_list args;
@@ -62,5 +62,5 @@
 }
 
-static void pci_generic_warn(char *msg, ...)
+static void pci_generic_warn(const char *msg, ...)
 {
 	va_list args;
@@ -72,5 +72,5 @@
 }
 
-static void pci_generic_debug(char *msg, ...)
+static void pci_generic_debug(const char *msg, ...)
 {
 	va_list args;
@@ -81,5 +81,5 @@
 }
 
-static void pci_null_debug(char *msg UNUSED, ...)
+static void pci_null_debug(const char *msg UNUSED, ...)
 {
 }
Index: uspace/lib/libpci/internal.h
===================================================================
--- uspace/lib/libpci/internal.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/lib/libpci/internal.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -13,5 +13,5 @@
 
 struct pci_methods {
-	char *name;
+	const char *name;
 	void (*config) (struct pci_access *);
 	int (*detect) (struct pci_access *);
Index: uspace/lib/libpci/names.c
===================================================================
--- uspace/lib/libpci/names.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/lib/libpci/names.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -299,5 +299,5 @@
 }
 
-char *pci_lookup_name(struct pci_access *a, char *buf, int size, int flags,
+const char *pci_lookup_name(struct pci_access *a, char *buf, int size, int flags,
 		      ...)
 {
Index: uspace/lib/libpci/pci.h
===================================================================
--- uspace/lib/libpci/pci.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/lib/libpci/pci.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -40,7 +40,7 @@
 
 	/* Functions you can override: */
-	void (*error) (char *msg, ...);	/* Write error message and quit */
-	void (*warning) (char *msg, ...);	/* Write a warning message */
-	void (*debug) (char *msg, ...);	/* Write a debugging message */
+	void (*error) (const char *msg, ...);	/* Write error message and quit */
+	void (*warning) (const char *msg, ...);	/* Write a warning message */
+	void (*debug) (const char *msg, ...);	/* Write a debugging message */
 
 	struct pci_dev *devices;	/* Devices found on this bus */
@@ -128,6 +128,6 @@
  */
 
-char *pci_lookup_name(struct pci_access *a, char *buf, int size, int flags,
-		      ...);
+const char *pci_lookup_name(struct pci_access *a, char *buf, int size,
+    int flags, ...);
 
 int pci_load_name_list(struct pci_access *a);	/* Called automatically by pci_lookup_*() when needed; returns success */
Index: uspace/lib/libpci/pci_ids.h
===================================================================
--- uspace/lib/libpci/pci_ids.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/lib/libpci/pci_ids.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -1,4 +1,4 @@
 /* DO NOT EDIT, THIS FILE IS AUTOMATICALLY GENERATED */
-char *pci_ids[] = {
+const char *pci_ids[] = {
 "0000  Gammagraphx, Inc.",
 "001a  Ascend Communications, Inc.",
Index: uspace/srv/hid/adb_mouse/adb_dev.c
===================================================================
--- uspace/srv/hid/adb_mouse/adb_dev.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/srv/hid/adb_mouse/adb_dev.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -50,5 +50,5 @@
 int adb_dev_init(void)
 {
-	char *input = "/dev/adb/mouse";
+	const char *input = "/dev/adb/mouse";
 	int input_fd;
 
Index: uspace/srv/hid/char_mouse/chardev.c
===================================================================
--- uspace/srv/hid/char_mouse/chardev.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/srv/hid/char_mouse/chardev.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -52,5 +52,5 @@
 int mouse_port_init(void)
 {
-	char *input = "/dev/char/ps2b";
+	const char *input = "/dev/char/ps2b";
 	int input_fd;
 
Index: uspace/srv/hid/fb/serial_console.c
===================================================================
--- uspace/srv/hid/fb/serial_console.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/srv/hid/fb/serial_console.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -100,5 +100,5 @@
 };
 
-void serial_puts(char *str)
+void serial_puts(const char *str)
 {
 	while (*str)
Index: uspace/srv/hid/fb/serial_console.h
===================================================================
--- uspace/srv/hid/fb/serial_console.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/srv/hid/fb/serial_console.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -43,5 +43,5 @@
 typedef void (*putc_function_t)(char);
 
-void serial_puts(char *str);
+void serial_puts(const char *str);
 void serial_goto(const unsigned int col, const unsigned int row);
 void serial_clrscr(void);
Index: uspace/srv/hid/kbd/port/adb.c
===================================================================
--- uspace/srv/hid/kbd/port/adb.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/srv/hid/kbd/port/adb.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -53,5 +53,5 @@
 int kbd_port_init(void)
 {
-	char *input = "/dev/adb/kbd";
+	const char *input = "/dev/adb/kbd";
 	int input_fd;
 
Index: uspace/srv/hid/kbd/port/chardev.c
===================================================================
--- uspace/srv/hid/kbd/port/chardev.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/srv/hid/kbd/port/chardev.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -52,5 +52,5 @@
 int kbd_port_init(void)
 {
-	char *input = "/dev/char/ps2a";
+	const char *input = "/dev/char/ps2a";
 	int input_fd;
 
Index: uspace/srv/loader/elf_load.c
===================================================================
--- uspace/srv/loader/elf_load.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/srv/loader/elf_load.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -60,5 +60,5 @@
 #define DPRINTF(...)
 
-static char *error_codes[] = {
+static const char *error_codes[] = {
 	"no error",
 	"invalid image",
@@ -95,12 +95,13 @@
  * pointed to by @a info.
  *
- * @param file_name	Path to the ELF file.
- * @param so_bias	Bias to use if the file is a shared object.
- * @param info		Pointer to a structure for storing information
- *			extracted from the binary.
+ * @param file_name Path to the ELF file.
+ * @param so_bias   Bias to use if the file is a shared object.
+ * @param info      Pointer to a structure for storing information
+ *                  extracted from the binary.
  *
  * @return EOK on success or negative error code.
- */
-int elf_load_file(char *file_name, size_t so_bias, elf_info_t *info)
+ *
+ */
+int elf_load_file(const char *file_name, size_t so_bias, elf_info_t *info)
 {
 	elf_ld_t elf;
@@ -130,5 +131,6 @@
  * earlier with elf_load_file(). This function does not return.
  *
- * @param info	Info structure filled earlier by elf_load_file()
+ * @param info Info structure filled earlier by elf_load_file()
+ *
  */
 void elf_run(elf_info_t *info, pcb_t *pcb)
@@ -280,5 +282,5 @@
  * @return NULL terminated description of error.
  */
-char *elf_error(unsigned int rc)
+const char *elf_error(unsigned int rc)
 {
 	assert(rc < sizeof(error_codes) / sizeof(char *));
Index: uspace/srv/loader/include/elf.h
===================================================================
--- uspace/srv/loader/include/elf.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/srv/loader/include/elf.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -337,5 +337,5 @@
 #endif
 
-extern char *elf_error(unsigned int rc);
+extern const char *elf_error(unsigned int rc);
 
 #endif
Index: uspace/srv/loader/include/elf_load.h
===================================================================
--- uspace/srv/loader/include/elf_load.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/srv/loader/include/elf_load.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -27,5 +27,5 @@
  */
 
-/** @addtogroup generic	
+/** @addtogroup generic
  * @{
  */
@@ -51,5 +51,5 @@
 
 	/** ELF interpreter name or NULL if statically-linked */
-	char *interp;
+	const char *interp;
 
 	/** Pointer to the dynamic section */
@@ -74,5 +74,5 @@
 } elf_ld_t;
 
-int elf_load_file(char *file_name, size_t so_bias, elf_info_t *info);
+int elf_load_file(const char *file_name, size_t so_bias, elf_info_t *info);
 void elf_run(elf_info_t *info, pcb_t *pcb);
 void elf_create_pcb(elf_info_t *info, pcb_t *pcb);
Index: uspace/srv/net/il/ip/ip.c
===================================================================
--- uspace/srv/net/il/ip/ip.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/srv/net/il/ip/ip.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -479,5 +479,5 @@
 	ERROR_DECLARE;
 
-	measured_string_t	names[] = {{ "IPV", 3 }, { "IP_CONFIG", 9 }, { "IP_ADDR", 7 }, { "IP_NETMASK", 10 }, { "IP_GATEWAY", 10 }, { "IP_BROADCAST", 12 }, { "ARP", 3 }, { "IP_ROUTING", 10 }};
+	measured_string_t	names[] = {{ str_dup("IPV"), 3 }, { str_dup("IP_CONFIG"), 9 }, { str_dup("IP_ADDR"), 7 }, { str_dup("IP_NETMASK"), 10 }, { str_dup("IP_GATEWAY"), 10 }, { str_dup("IP_BROADCAST"), 12 }, { str_dup("ARP"), 3 }, { str_dup("IP_ROUTING"), 10 }};
 	measured_string_ref	configuration;
 	size_t				count = sizeof( names ) / sizeof( measured_string_t );
Index: uspace/srv/net/net/net.c
===================================================================
--- uspace/srv/net/net/net.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/srv/net/net/net.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -154,5 +154,5 @@
  *  @returns Other error codes as defined for the add_configuration() function.
  */
-int	read_netif_configuration( char * name, netif_ref netif );
+int	read_netif_configuration( const char * name, netif_ref netif );
 
 /** Networking module global data.
@@ -413,5 +413,5 @@
 }
 
-int read_netif_configuration( char * name, netif_ref netif ){
+int read_netif_configuration( const char * name, netif_ref netif ){
 	// read the netif configuration file
 	return read_configuration_file( CONF_DIR, name, & netif->configuration );
@@ -485,7 +485,7 @@
 
 #ifdef CONFIG_NETIF_DP8390
-	char *		conf_files[] = { "lo", "ne2k" };
+	const char *		conf_files[] = { "lo", "ne2k" };
 #else
-	char *		conf_files[] = { "lo" };
+	const char *		conf_files[] = { "lo" };
 #endif
 
Index: uspace/srv/net/net/start/netstart.c
===================================================================
--- uspace/srv/net/net/start/netstart.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/srv/net/net/start/netstart.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -69,5 +69,5 @@
  *  @returns Other error codes as defined for the task_spawn() function.
  */
-task_id_t	spawn( char * fname );
+task_id_t	spawn( const char * fname );
 
 int main( int argc, char * argv[] ){
@@ -97,6 +97,6 @@
 }
 
-task_id_t spawn( char * fname ){
-	char *	argv[ 2 ];
+task_id_t spawn( const char * fname ){
+	const char *	argv[ 2 ];
 	task_id_t	res;
 
Index: uspace/srv/net/netif/lo/lo.c
===================================================================
--- uspace/srv/net/netif/lo/lo.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/srv/net/netif/lo/lo.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -102,5 +102,5 @@
 int netif_get_addr_message( device_id_t device_id, measured_string_ref address ){
 	if( ! address ) return EBADMEM;
-	address->value = DEFAULT_ADDR;
+	address->value = str_dup(DEFAULT_ADDR);
 	address->length = DEFAULT_ADDR_LEN;
 	return EOK;
Index: uspace/srv/net/nil/eth/eth.c
===================================================================
--- uspace/srv/net/nil/eth/eth.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/srv/net/nil/eth/eth.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -308,5 +308,5 @@
 	eth_device_ref	device;
 	int				index;
-	measured_string_t	names[ 2 ] = {{ "ETH_MODE", 8 }, { "ETH_DUMMY", 9 }};
+	measured_string_t	names[ 2 ] = {{ str_dup("ETH_MODE"), 8 }, { str_dup("ETH_DUMMY"), 9 }};
 	measured_string_ref	configuration;
 	size_t				count = sizeof( names ) / sizeof( measured_string_t );
Index: uspace/srv/net/structures/module_map.c
===================================================================
--- uspace/srv/net/structures/module_map.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/srv/net/structures/module_map.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -49,5 +49,5 @@
 GENERIC_CHAR_MAP_IMPLEMENT( modules, module_t )
 
-int add_module( module_ref * module, modules_ref modules, char * name, char * filename, services_t service, task_id_t task_id, connect_module_t connect_module ){
+int add_module( module_ref * module, modules_ref modules, const char * name, const char * filename, services_t service, task_id_t task_id, connect_module_t connect_module ){
 	ERROR_DECLARE;
 
@@ -86,6 +86,6 @@
 }
 
-task_id_t spawn( char * fname ){
-	char * argv[ 2 ];
+task_id_t spawn( const char * fname ){
+	const char * argv[ 2 ];
 	task_id_t	res;
 
Index: uspace/srv/net/structures/module_map.h
===================================================================
--- uspace/srv/net/structures/module_map.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/srv/net/structures/module_map.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -79,8 +79,8 @@
 	/** Module name.
 	 */
-	char *		name;
+	const char *		name;
 	/** Module full path filename.
 	 */
-	char *		filename;
+	const char *		filename;
 	/** Connecting function.
 	 */
@@ -99,5 +99,5 @@
  *  @returns ENOMEM if there is not enough memory left.
  */
-int	add_module( module_ref * module, modules_ref modules, char * name, char * filename, services_t service, task_id_t task_id, connect_module_t * connect_module );
+int	add_module( module_ref * module, modules_ref modules, const char * name, const char * filename, services_t service, task_id_t task_id, connect_module_t * connect_module );
 
 /** Searches and returns the specified module.
@@ -116,5 +116,5 @@
  *  @returns 0 if there is no such module.
  */
-task_id_t	spawn( char * fname );
+task_id_t	spawn( const char * fname );
 
 #endif
Index: uspace/srv/net/tl/icmp/icmp.c
===================================================================
--- uspace/srv/net/tl/icmp/icmp.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/srv/net/tl/icmp/icmp.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -464,5 +464,5 @@
 	ERROR_DECLARE;
 
-	measured_string_t	names[] = {{ "ICMP_ERROR_REPORTING", 20 }, { "ICMP_ECHO_REPLYING", 18 }};
+	measured_string_t	names[] = {{ str_dup("ICMP_ERROR_REPORTING"), 20 }, { str_dup("ICMP_ECHO_REPLYING"), 18 }};
 	measured_string_ref	configuration;
 	size_t				count = sizeof( names ) / sizeof( measured_string_t );
Index: uspace/srv/net/tl/udp/udp.c
===================================================================
--- uspace/srv/net/tl/udp/udp.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/srv/net/tl/udp/udp.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -192,5 +192,5 @@
 	ERROR_DECLARE;
 
-	measured_string_t	names[] = {{ "UDP_CHECKSUM_COMPUTING", 22 }, { "UDP_AUTOBINDING", 15 }};
+	measured_string_t	names[] = {{ str_dup("UDP_CHECKSUM_COMPUTING"), 22 }, { str_dup("UDP_AUTOBINDING"), 15 }};
 	measured_string_ref	configuration;
 	size_t				count = sizeof( names ) / sizeof( measured_string_t );
Index: uspace/srv/taskmon/taskmon.c
===================================================================
--- uspace/srv/taskmon/taskmon.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/srv/taskmon/taskmon.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -49,9 +49,9 @@
 static void fault_event(ipc_callid_t callid, ipc_call_t *call)
 {
-	char *argv[6];
-	char *fname;
+	const char *argv[6];
+	const char *fname;
 	char *dump_fname;
 	char *s_taskid;
-	char **s;
+	const char **s;
 
 	task_id_t taskid;
@@ -89,5 +89,6 @@
 
 	printf(NAME ": Executing");
-        s = argv;
+	
+	s = argv;
 	while (*s != NULL) {
 		printf(" %s", *s);
