diff --git a/archival/tar.c b/archival/tar.c
index 7a82b44..f6750ae 100644
--- a/archival/tar.c
+++ b/archival/tar.c
@@ -695,12 +695,8 @@
 	}
 
 	/* Prepend '-' to the first argument if required */
-	if (argv[1][0] != '-') {
-		char *tmp;
-
-		bb_xasprintf(&tmp, "-%s", argv[1]);
-		argv[1] = tmp;
-	}
+	if (argv[1][0] != '-') 
+		argv[1] = bb_xasprintf("-%s", argv[1]);
 
 	/* Initialise default values */
 	tar_handle = init_handle();
diff --git a/coreutils/expr.c b/coreutils/expr.c
index 3f052d9..969d9ff 100644
--- a/coreutils/expr.c
+++ b/coreutils/expr.c
@@ -147,7 +147,7 @@
 static void tostring (VALUE *v)
 {
 	if (v->type == integer) {
-               bb_xasprintf (&(v->u.s), "%d", v->u.i);
+		v->u.s = bb_xasprintf ("%d", v->u.i);
 		v->type = string;
 	}
 }
diff --git a/coreutils/ln.c b/coreutils/ln.c
index 274e0d0..6751e90 100644
--- a/coreutils/ln.c
+++ b/coreutils/ln.c
@@ -74,17 +74,17 @@
 			src_name = src;
 		}
 		if (!(flag & LN_SYMLINK) && stat(*argv, &statbuf)) {
-			bb_perror_msg(*argv);
+			bb_perror_msg("%s", *argv);
 			status = EXIT_FAILURE;
 			free(src_name);
 			continue;
 		}
 
 		if (flag & LN_BACKUP) {
-				char *backup = NULL;
-				bb_xasprintf(&backup, "%s%s", src, suffix);
+				char *backup;
+				backup = bb_xasprintf("%s%s", src, suffix);
 				if (rename(src, backup) < 0 && errno != ENOENT) {
-						bb_perror_msg(src);
+						bb_perror_msg("%s", src);
 						status = EXIT_FAILURE;
 						free(backup);
 						continue;
diff --git a/e2fsprogs/fsck.c b/e2fsprogs/fsck.c
index bb334e3..93514a3 100644
--- a/e2fsprogs/fsck.c
+++ b/e2fsprogs/fsck.c
@@ -363,7 +363,6 @@
 {
   char *s;
   const char *tpl;
-  char *prog;
   char *p = string_copy(fsck_path);
   struct stat st;
 
@@ -371,12 +370,12 @@
   tpl = (strncmp(type, "fsck.", 5) ? "%s/fsck.%s" : "%s/%s");
 
   for(s = strtok(p, ":"); s; s = strtok(NULL, ":")) {
-	bb_xasprintf(&prog, tpl, s, type);
-	if (stat(prog, &st) == 0) break;
-	free(prog);
+	s = bb_xasprintf(tpl, s, type);
+	if (stat(s, &st) == 0) break;
+	free(s);
   }
   free(p);
-  return(s ? prog : NULL);
+  return(s);
 }
 
 static int progress_active(void)
@@ -410,7 +409,7 @@
 		return ENOMEM;
 	memset(inst, 0, sizeof(struct fsck_instance));
 
-	bb_xasprintf(&prog, "fsck.%s", type);
+	prog = bb_xasprintf("fsck.%s", type);
 	argv[0] = prog;
 	argc = 1;
 
@@ -1189,7 +1188,7 @@
 
 	/* Update our search path to include uncommon directories. */
 	if (oldpath) {
-		bb_xasprintf(&fsck_path, "%s:%s", fsck_prefix_path, oldpath);
+		fsck_path = bb_xasprintf("%s:%s", fsck_prefix_path, oldpath);
 	} else {
 		fsck_path = string_copy(fsck_prefix_path);
 	}
diff --git a/e2fsprogs/mke2fs.c b/e2fsprogs/mke2fs.c
index 017fb53..6cd5bd4 100644
--- a/e2fsprogs/mke2fs.c
+++ b/e2fsprogs/mke2fs.c
@@ -794,10 +794,7 @@
 
 	/* Update our PATH to include /sbin  */
 	if (oldpath) {
-		char *newpath;
-
-		bb_xasprintf(&newpath, "%s:%s", PATH_SET, oldpath);
-		putenv(newpath);
+		putenv (bb_xasprintf("%s:%s", PATH_SET, oldpath));
 	} else
 		putenv (PATH_SET);
 
diff --git a/include/libbb.h b/include/libbb.h
index c92d972..02bdb58 100644
--- a/include/libbb.h
+++ b/include/libbb.h
@@ -408,8 +408,7 @@
 extern size_t bb_strlen(const char *string);
 #define strlen(x)   bb_strlen(x)
 
-void bb_xasprintf(char **string_ptr, const char *format, ...) __attribute__ ((format (printf, 2, 3)));
-
+char *bb_xasprintf(const char *format, ...) __attribute__ ((format (printf, 1, 2)));
 
 #define FAIL_DELAY    3
 extern void change_identity ( const struct passwd *pw );
diff --git a/libbb/bb_asprintf.c b/libbb/bb_asprintf.c
index a3ba424..8658a54 100644
--- a/libbb/bb_asprintf.c
+++ b/libbb/bb_asprintf.c
@@ -1,5 +1,5 @@
 /*
-   Copyright (C) 2002 Vladimir Oleynik <dzo@simtreas.ru>
+   Copyright (C) 2002,2005 Vladimir Oleynik <dzo@simtreas.ru>
 */
 
 #include <stdlib.h>
@@ -7,16 +7,18 @@
 #include <stdarg.h>
 #include "libbb.h"
 
-void bb_xasprintf(char **string_ptr, const char *format, ...)
+char *bb_xasprintf(const char *format, ...)
 {
 	va_list p;
 	int r;
+	char *string_ptr;
 
 	va_start(p, format);
-	r = vasprintf(string_ptr, format, p);
+	r = vasprintf(&string_ptr, format, p);
 	va_end(p);
 
 	if (r < 0) {
 		bb_perror_msg_and_die("bb_xasprintf");
 	}
+	return string_ptr;
 }
diff --git a/libbb/concat_path_file.c b/libbb/concat_path_file.c
index 00233ad..029c232 100644
--- a/libbb/concat_path_file.c
+++ b/libbb/concat_path_file.c
@@ -30,7 +30,6 @@
 
 extern char *concat_path_file(const char *path, const char *filename)
 {
-	char *outbuf;
 	char *lc;
 
 	if (!path)
@@ -38,7 +37,5 @@
 	lc = last_char_is(path, '/');
 	while (*filename == '/')
 		filename++;
-	bb_xasprintf(&outbuf, "%s%s%s", path, (lc==NULL ? "/" : ""), filename);
-
-	return outbuf;
+	return bb_xasprintf("%s%s%s", path, (lc==NULL ? "/" : ""), filename);
 }
diff --git a/libbb/run_shell.c b/libbb/run_shell.c
index 67ff2a5..6d084ee 100644
--- a/libbb/run_shell.c
+++ b/libbb/run_shell.c
@@ -84,11 +84,8 @@
 
 	args [0] = bb_get_last_path_component ( bb_xstrdup ( shell ));
 
-	if ( loginshell ) {
-		char *args0;
-		bb_xasprintf ( &args0, "-%s", args [0] );
-		args [0] = args0;
-	}
+	if ( loginshell ) 
+		args [0] = bb_xasprintf ("-%s", args [0]);
 
 	if ( command ) {
 		args [argno++] = "-c";
diff --git a/loginutils/adduser.c b/loginutils/adduser.c
index eb98901..1630c72 100644
--- a/loginutils/adduser.c
+++ b/loginutils/adduser.c
@@ -117,7 +117,7 @@
 {
 	char *cmd;
 
-	bb_xasprintf(&cmd, "addgroup -g %d %s", gid, login);
+	cmd = bb_xasprintf("addgroup -g %d %s", gid, login);
 	system(cmd);
 	free(cmd);
 }
diff --git a/miscutils/less.c b/miscutils/less.c
index 7b1b96c..189b886 100644
--- a/miscutils/less.c
+++ b/miscutils/less.c
@@ -208,7 +208,7 @@
 
 	for (i = 0; i <= num_flines; i++) {
 		safe_strncpy(current_line, flines[i], 256);
-		bb_xasprintf(&flines[i],"%5d %s", i + 1, current_line);
+		flines[i] = bb_xasprintf("%5d %s", i + 1, current_line);
 	}
 }
 
@@ -618,11 +618,8 @@
 
 static char *insert_highlights (char *line, int start, int end) {
 
-	char *new_line;
-
-	bb_xasprintf(&new_line, "%.*s%s%.*s%s%s", start, line, HIGHLIGHT,
+	return bb_xasprintf("%.*s%s%.*s%s%s", start, line, HIGHLIGHT,
 			end - start, line + start, NORMAL, line + end);
-	return new_line;
 }
 
 static char *process_regex_on_line(char *line, regex_t *pattern) {
diff --git a/miscutils/mountpoint.c b/miscutils/mountpoint.c
index 46b2d4e..771df55 100644
--- a/miscutils/mountpoint.c
+++ b/miscutils/mountpoint.c
@@ -46,8 +46,8 @@
 			if (S_ISDIR(st.st_mode)) {
 				dev_t st_dev = st.st_dev;
 				ino_t st_ino = st.st_ino;
-				char *p;
-				bb_xasprintf(&p, "%s/..", arg);
+				char *p = bb_xasprintf("%s/..", arg);
+				
 				if (stat(p, &st) == 0) {
 					short ret = (st_dev != st.st_dev) ||
 						(st_dev == st.st_dev && st_ino == st.st_ino);
diff --git a/modutils/insmod.c b/modutils/insmod.c
index 232a6e6..94e66f4 100644
--- a/modutils/insmod.c
+++ b/modutils/insmod.c
@@ -3756,10 +3756,10 @@
 
 #if defined(CONFIG_FEATURE_2_6_MODULES)
 	if (k_version > 4)
-		bb_xasprintf(&m_fullName, "%s.ko", tmp);
+		m_fullName = bb_xasprintf("%s.ko", tmp);
 	else
 #endif
-		bb_xasprintf(&m_fullName, "%s.o", tmp);
+		m_fullName = bb_xasprintf("%s.o", tmp);
 
 	if (!m_name) {
 		m_name = tmp;
diff --git a/networking/ifupdown.c b/networking/ifupdown.c
index c735294..d23c9f7 100644
--- a/networking/ifupdown.c
+++ b/networking/ifupdown.c
@@ -1010,7 +1010,7 @@
 		}
 	}
 
-	bb_xasprintf(&buf, "run-parts /etc/network/if-%s.d", opt);
+	buf = bb_xasprintf("run-parts /etc/network/if-%s.d", opt);
 	if ((*exec)(buf) != 1) {
 		return 0;
 	}
diff --git a/procps/sysctl.c b/procps/sysctl.c
index 359dcc0..dbb82e6 100644
--- a/procps/sysctl.c
+++ b/procps/sysctl.c
@@ -209,7 +209,7 @@
 		return -2;
 	}
 
-	bb_xasprintf(&tmpname, "%s%.*s", PROC_PATH, (equals - name), name);
+	tmpname = bb_xasprintf("%s%.*s", PROC_PATH, (equals - name), name);
 	outname = bb_xstrdup(tmpname + strlen(PROC_PATH));
 
 	while ((cptr = strchr(tmpname, '.')) != NULL)
diff --git a/shell/cmdedit.c b/shell/cmdedit.c
index c4cb9d9..edfa016 100644
--- a/shell/cmdedit.c
+++ b/shell/cmdedit.c
@@ -621,7 +621,7 @@
 			/* Null usernames should result in all users as possible completions. */
 			if ( /*!userlen || */ !strncmp(ud, entry->pw_name, userlen)) {
 
-			       bb_xasprintf(&temp, "~%s/", entry->pw_name);
+				temp = bb_xasprintf("~%s/", entry->pw_name);
 				matches = xrealloc(matches, (nm + 1) * sizeof(char *));
 
 				matches[nm++] = temp;
