diff --git a/archival/uncompress.c b/archival/uncompress.c
index 8a874d0..c47436e 100644
--- a/archival/uncompress.c
+++ b/archival/uncompress.c
@@ -2,19 +2,7 @@
 /*
  *	Uncompress applet for busybox (c) 2002 Glenn McGrath
  *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
  */
 
 #include <stdlib.h>
@@ -24,7 +12,7 @@
 #include <sys/stat.h>
 #include <fcntl.h>
 
-#include "libbb.h"
+#include "busybox.h"
 #include "unarchive.h"
 
 #define GUNZIP_TO_STDOUT	1
diff --git a/include/busybox.h b/include/busybox.h
index 18f9dd5..59d800e 100644
--- a/include/busybox.h
+++ b/include/busybox.h
@@ -62,23 +62,6 @@
 #include "applets.h"
 #undef PROTOTYPES
 
-#ifdef CONFIG_FEATURE_BUFFERS_GO_ON_STACK
-#define RESERVE_CONFIG_BUFFER(buffer,len)           char buffer[len]
-#define RESERVE_CONFIG_UBUFFER(buffer,len) unsigned char buffer[len]
-#define RELEASE_CONFIG_BUFFER(buffer)      ((void)0)
-#else
-#ifdef CONFIG_FEATURE_BUFFERS_GO_IN_BSS
-#define RESERVE_CONFIG_BUFFER(buffer,len)  static          char buffer[len]
-#define RESERVE_CONFIG_UBUFFER(buffer,len) static unsigned char buffer[len]
-#define RELEASE_CONFIG_BUFFER(buffer)      ((void)0)
-#else
-#define RESERVE_CONFIG_BUFFER(buffer,len)           char *buffer=xmalloc(len)
-#define RESERVE_CONFIG_UBUFFER(buffer,len) unsigned char *buffer=xmalloc(len)
-#define RELEASE_CONFIG_BUFFER(buffer)      free (buffer)
-#endif
-#endif
-
-
 #ifndef RB_POWER_OFF
 /* Stop system and switch power off if possible.  */
 #define RB_POWER_OFF   0x4321fedc
diff --git a/include/libbb.h b/include/libbb.h
index f444084..64a235a 100644
--- a/include/libbb.h
+++ b/include/libbb.h
@@ -59,6 +59,24 @@
 #define	MAX(a,b) (((a)>(b))?(a):(b))
 #endif
 
+/* buffer allocation schemes */
+#ifdef CONFIG_FEATURE_BUFFERS_GO_ON_STACK
+#define RESERVE_CONFIG_BUFFER(buffer,len)           char buffer[len]
+#define RESERVE_CONFIG_UBUFFER(buffer,len) unsigned char buffer[len]
+#define RELEASE_CONFIG_BUFFER(buffer)      ((void)0)
+#else
+#ifdef CONFIG_FEATURE_BUFFERS_GO_IN_BSS
+#define RESERVE_CONFIG_BUFFER(buffer,len)  static          char buffer[len]
+#define RESERVE_CONFIG_UBUFFER(buffer,len) static unsigned char buffer[len]
+#define RELEASE_CONFIG_BUFFER(buffer)      ((void)0)
+#else
+#define RESERVE_CONFIG_BUFFER(buffer,len)           char *buffer=xmalloc(len)
+#define RESERVE_CONFIG_UBUFFER(buffer,len) unsigned char *buffer=xmalloc(len)
+#define RELEASE_CONFIG_BUFFER(buffer)      free (buffer)
+#endif
+#endif
+
+
 extern void bb_show_usage(void) ATTRIBUTE_NORETURN ATTRIBUTE_EXTERNALLY_VISIBLE;
 extern void bb_error_msg(const char *s, ...) __attribute__ ((format (printf, 1, 2)));
 extern void bb_error_msg_and_die(const char *s, ...) __attribute__ ((noreturn, format (printf, 1, 2)));
diff --git a/libbb/bb_do_delay.c b/libbb/bb_do_delay.c
index ddcff07..1fbdc9a 100644
--- a/libbb/bb_do_delay.c
+++ b/libbb/bb_do_delay.c
@@ -9,6 +9,7 @@
 
 #include <time.h>
 #include <unistd.h>
+#include "libbb.h"
 
 void bb_do_delay(int seconds)
 {
diff --git a/libbb/bb_echo.c b/libbb/bb_echo.c
index 9ad73df..0c5a947 100644
--- a/libbb/bb_echo.c
+++ b/libbb/bb_echo.c
@@ -26,7 +26,7 @@
 
 #include <stdio.h>
 #include <string.h>
-#include "busybox.h"
+#include "libbb.h"
 
 int bb_echo(int ATTRIBUTE_UNUSED argc, char **argv)
 {
diff --git a/libbb/compare_string_array.c b/libbb/compare_string_array.c
index 529d294..d379fee 100644
--- a/libbb/compare_string_array.c
+++ b/libbb/compare_string_array.c
@@ -1,20 +1,10 @@
+/* vi:set ts=4:*/
 /*
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
  */
 
 #include <string.h>
+#include "libbb.h"
 
 /* returns the array number of the string */
 int compare_string_array(const char * const string_array[], const char *key)
diff --git a/libbb/copy_file.c b/libbb/copy_file.c
index 35352d2..3b172ff 100644
--- a/libbb/copy_file.c
+++ b/libbb/copy_file.c
@@ -18,7 +18,7 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include "busybox.h"
+#include "libbb.h"
 
 /* Compiler version-specific crap that should be in a header file somewhere. */
 
diff --git a/libbb/copyfd.c b/libbb/copyfd.c
index d138f3e..e2c542e 100644
--- a/libbb/copyfd.c
+++ b/libbb/copyfd.c
@@ -12,7 +12,6 @@
 #include <string.h>
 #include <unistd.h>
 
-#include "busybox.h"
 #include "libbb.h"
 
 
diff --git a/libbb/get_last_path_component.c b/libbb/get_last_path_component.c
index c950fae..3119097 100644
--- a/libbb/get_last_path_component.c
+++ b/libbb/get_last_path_component.c
@@ -7,6 +7,8 @@
  * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
  */
 
+#include "libbb.h"
+
 char *bb_get_last_path_component(char *path)
 {
 	char *first = path;
diff --git a/libbb/get_terminal_width_height.c b/libbb/get_terminal_width_height.c
index 01136d4..df5aa90 100644
--- a/libbb/get_terminal_width_height.c
+++ b/libbb/get_terminal_width_height.c
@@ -4,19 +4,7 @@
  *
  * Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
  *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
  */
 
 #include <stdio.h>
@@ -26,7 +14,7 @@
 #include <unistd.h>
 #include <termios.h>
 #include <sys/ioctl.h>
-#include "busybox.h"
+#include "libbb.h"
 
 /* It is perfectly ok to pass in a NULL for either width or for
  * height, in which case that value will not be set.  */
diff --git a/libbb/md5.c b/libbb/md5.c
index 8cec885..b5aa89f 100644
--- a/libbb/md5.c
+++ b/libbb/md5.c
@@ -1,9 +1,9 @@
 /*
  *  md5.c - Compute MD5 checksum of strings according to the
  *          definition of MD5 in RFC 1321 from April 1992.
- * 
+ *
  *  Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
- *  
+ *
  *  Copyright (C) 1995-1999 Free Software Foundation, Inc.
  *  Copyright (C) 2001 Manuel Novoa III
  *  Copyright (C) 2003 Glenn L. McGrath
@@ -19,7 +19,7 @@
 #include <string.h>
 #include <unistd.h>
 
-#include "busybox.h"
+#include "libbb.h"
 
 # if CONFIG_MD5_SIZE_VS_SPEED < 0 || CONFIG_MD5_SIZE_VS_SPEED > 3
 # define MD5_SIZE_VS_SPEED 2
@@ -71,7 +71,7 @@
  * starting at BUFFER.
  * It is necessary that LEN is a multiple of 64!!!
  */
-void md5_hash_block(const void *buffer, size_t len, md5_ctx_t *ctx)
+static void md5_hash_block(const void *buffer, size_t len, md5_ctx_t *ctx)
 {
 	uint32_t correct_words[16];
 	const uint32_t *words = buffer;
diff --git a/libbb/messages.c b/libbb/messages.c
index 23f0ea2..b9a5353 100644
--- a/libbb/messages.c
+++ b/libbb/messages.c
@@ -2,19 +2,7 @@
 /*
  * Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
  *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
  *
  */
 
diff --git a/libbb/mode_string.c b/libbb/mode_string.c
index 83142ba..5a97759 100644
--- a/libbb/mode_string.c
+++ b/libbb/mode_string.c
@@ -4,19 +4,7 @@
  *
  * Copyright (C) 2003  Manuel Novoa III  <mjn3@codepoet.org>
  *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
  *
  */
 
@@ -28,6 +16,8 @@
 #include <assert.h>
 #include <sys/stat.h>
 
+#include "libbb.h"
+
 #if ( S_ISUID != 04000 ) || ( S_ISGID != 02000 ) || ( S_ISVTX != 01000 ) \
  || ( S_IRUSR != 00400 ) || ( S_IWUSR != 00200 ) || ( S_IXUSR != 00100 ) \
  || ( S_IRGRP != 00040 ) || ( S_IWGRP != 00020 ) || ( S_IXGRP != 00010 ) \
diff --git a/libbb/sha1.c b/libbb/sha1.c
index 128d4b9..4b28266 100644
--- a/libbb/sha1.c
+++ b/libbb/sha1.c
@@ -45,7 +45,7 @@
 #include <string.h>
 #include <unistd.h>
 
-#include "busybox.h"
+#include "libbb.h"
 
 # define SHA1_BLOCK_SIZE  64
 # define SHA1_DIGEST_SIZE 20
diff --git a/libbb/u_signal_names.c b/libbb/u_signal_names.c
index be444a9..31ebd89 100644
--- a/libbb/u_signal_names.c
+++ b/libbb/u_signal_names.c
@@ -5,20 +5,7 @@
  * Copyright (C) many different people.
  * If you wrote this, please acknowledge your work.
  *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- * USA
+ * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
  */
 
 #include <signal.h>
@@ -27,6 +14,8 @@
 #include <stdlib.h>
 #include <stdio.h>
 
+#include "libbb.h"
+
 struct signal_name {
 	const char *name;
 	int number;
diff --git a/libbb/xgetlarg.c b/libbb/xgetlarg.c
index 6d3c4d1..893cd28 100644
--- a/libbb/xgetlarg.c
+++ b/libbb/xgetlarg.c
@@ -1,6 +1,8 @@
 /* vi: set sw=4 ts=4: */
 /*
  * Copyright (C) 2003-2004 Erik Andersen <andersen@codepoet.org>
+ *
+ * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
  */
 
 
@@ -11,7 +13,7 @@
 #include <assert.h>
 #include <ctype.h>
 
-#include "busybox.h"
+#include "libbb.h"
 
 long bb_xgetlarg(const char *arg, int base, long lower, long upper)
 {
diff --git a/networking/dnsd.c b/networking/dnsd.c
index 9ca4105..a815860 100644
--- a/networking/dnsd.c
+++ b/networking/dnsd.c
@@ -21,7 +21,7 @@
 #include <arpa/inet.h>
 #include <sys/socket.h>
 #include <ctype.h>
-#include "libbb.h"
+#include "busybox.h"
 
 static char *fileconf = "/etc/dnsd.conf";
 #define LOCK_FILE       "/var/run/dnsd.lock"
diff --git a/networking/ifupdown.c b/networking/ifupdown.c
index d4167e9..560c7a2 100644
--- a/networking/ifupdown.c
+++ b/networking/ifupdown.c
@@ -32,7 +32,7 @@
 #include <string.h>
 #include <unistd.h>
 
-#include "libbb.h"
+#include "busybox.h"
 
 #define MAX_OPT_DEPTH 10
 #define EUNBALBRACK 10001
