diff -upr vnstat-1.4.orig/Makefile vnstat-1.4/Makefile
--- vnstat-1.4.orig/Makefile	2006-04-09 17:03:42.000000000 +0200
+++ vnstat-1.4/Makefile	2006-04-09 17:19:03.000000000 +0200
@@ -9,12 +9,6 @@ vnstat:
 64bit:
 	+make -C src 64bit
 
-single:
-	+make -C src single
-
-64bitsingle:
-	+make -C src 64bitsingle
-
 clean:
 	make -C src clean
 
diff -upr vnstat-1.4.orig/man/vnstat.1 vnstat-1.4/man/vnstat.1
--- vnstat-1.4.orig/man/vnstat.1	2006-04-09 17:03:42.000000000 +0200
+++ vnstat-1.4/man/vnstat.1	2006-04-09 17:53:23.000000000 +0200
@@ -16,6 +16,9 @@ vnStat \- a console-based network traffi
 ] [
 .B \-\-days
 ] [
+.B \-\-dbdir
+.I [dir]
+] [
 .B \-\-debug
 ] [
 .B \-\-disable
@@ -123,6 +126,17 @@ Show traffic for 7 days, current and pre
 .BI "--cleartop"
 Remove all top10 entries.
 .TP
+.BI "--dbdir " [dir]
+If the parameter
+.I dir
+is specified, set the database directory to it. If
+.I dir
+is not specified, set the database directory to $HOME/.vnstat.
+If this parameter is not specified at all, the database directory
+is the global one.
+.I dir
+must not begin with a dash (-).
+.TP
 .BI "--dumpdb"
 Instead of showing the database with a formated output, this output will
 dump the whole database in a format that should be easy to parse with most
diff -upr vnstat-1.4.orig/src/Makefile vnstat-1.4/src/Makefile
--- vnstat-1.4.orig/src/Makefile	2006-04-09 17:03:42.000000000 +0200
+++ vnstat-1.4/src/Makefile	2006-04-09 17:19:15.000000000 +0200
@@ -11,12 +11,6 @@ vnstat: $(OBJS) vnstat.c vnstat.h
 64bit: $(OBJS64) vnstat.c vnstat.h
 	$(CC) $(CFLAGS) -o vnstat vnstat.c $(OBJS64) -DBLIMIT
 
-single: $(OBJS) vnstat.c vnstat.h
-	$(CC) $(CFLAGS) -o vnstat vnstat.c $(OBJS) -DSINGLE
-
-64bitsingle: $(OBJS64) vnstat.c vnstat.h
-	$(CC) $(CFLAGS) -o vnstat vnstat.c $(OBJS64) -DSINGLE -DBLIMIT
-
 proc.o: proc.c proc.h vnstat.h db.h
 	$(CC) $(CFLAGS) -c proc.c
 
diff -upr vnstat-1.4.orig/src/vnstat.c vnstat-1.4/src/vnstat.c
--- vnstat-1.4.orig/src/vnstat.c	2006-04-09 17:03:42.000000000 +0200
+++ vnstat-1.4/src/vnstat.c	2006-04-09 17:55:42.000000000 +0200
@@ -44,38 +44,7 @@ int main(int argc, char *argv[]) {
 	current=time(NULL);
 
 	/* init dirname */
-#ifdef SINGLE
-	strncpy(dirname, getenv("HOME"), 500);
-	strcat(dirname,"/.vnstat");
-#else
 	strncpy(dirname, DATABASEDIR, 500);
-#endif
-
-	/* check if the database dir exists and if it contains files */
-	if ((dir=opendir(dirname))!=NULL) {
-		if (debug)
-			printf("Dir OK\n");
-		while ((di=readdir(dir))) {
-			if (di->d_name[0]!='.') {
-				strncpy(definterface, di->d_name, 32);
-				files++;
-			}
-		}
-		if (debug)
-			printf("%d files found\n", files);
-		if (files) {
-			query=1;
-			if (files>1)
-				strncpy(definterface, DEFIFACE, 32);
-		}
-		closedir(dir);
-	} else {
-		printf("Error:\nUnable to open database directory \"%s\".\n", dirname);
-		printf("Make sure it exists and is read enabled for this user.\n");
-		printf("Exiting...\n");
-		exit(0);
-	}
-
 
 	/* parse parameters, maybe not the best way but... */
 	for (currentarg=1; currentarg<argc; currentarg++) {
@@ -110,6 +79,8 @@ int main(int argc, char *argv[]) {
 			printf("\t -D, --debug\t\t show some additional debug information\n");
 			printf("\t -v, --version\t\t show version\n");
 			printf("\t -tr, --traffic\t\t calculate traffic\n");
+			printf("\t --dbdir [DIR]\t\t change database directory to DIR\n");
+			printf("\t              \t\t DIR defaults to $HOME/.vnstat\n");
 			printf("\t --testkernel\t\t check if the kernel is broken\n");
 			printf("\t --longhelp\t\t display this help\n\n");
 
@@ -211,6 +182,14 @@ int main(int argc, char *argv[]) {
 		} else if (strcmp(argv[currentarg],"--testkernel")==0) {
 			kerneltest();
 			exit(0);
+		} else if (strncmp(argv[currentarg], "--dbdir", 7)==0) {
+			if ((currentarg + 1) < argc && argv[currentarg + 1][0] != '-') {
+				strncpy(dirname, argv[currentarg + 1], 510);
+				currentarg++;
+			} else {
+				strncpy(dirname, getenv("HOME"), 500);
+				strcat(dirname, "/.vnstat");
+			}
 		} else if ((strcmp(argv[currentarg],"-v")==0) || (strcmp(argv[currentarg],"--version"))==0) {
 			printf("vnStat %s by Teemu Toivola <tst at iki dot fi>\n", VNSTATVERSION);
 #ifndef SINGLE
@@ -238,6 +217,31 @@ int main(int argc, char *argv[]) {
 		
 	}
 
+	/* check if the database dir exists and if it contains files */
+	if ((dir=opendir(dirname))!=NULL) {
+		if (debug)
+			printf("Dir OK\n");
+		while ((di=readdir(dir))) {
+			if (di->d_name[0]!='.') {
+				strncpy(definterface, di->d_name, 32);
+				files++;
+			}
+		}
+		if (debug)
+			printf("%d files found\n", files);
+		if (files) {
+			query=1;
+			if (files>1)
+				strncpy(definterface, DEFIFACE, 32);
+		}
+		closedir(dir);
+	} else {
+		printf("Error:\nUnable to open database directory \"%s\".\n", dirname);
+		printf("Make sure it exists and is read enabled for this user.\n");
+		printf("Exiting...\n");
+		exit(0);
+	}
+
 	/* counter reset */
 	if (reset) {
 		if (!spacecheck(dirname) && !force) {
Only in vnstat-1.4/src: .vnstat.c.swp