Show "nil" also for void* values
diff --git a/lens_default.c b/lens_default.c
index 84b74ea..f0bd616 100644
--- a/lens_default.c
+++ b/lens_default.c
@@ -1,6 +1,6 @@
 /*
  * This file is part of ltrace.
- * Copyright (C) 2011,2012 Petr Machata, Red Hat Inc.
+ * Copyright (C) 2011,2012,2013 Petr Machata, Red Hat Inc.
  * Copyright (C) 1998,2004,2007,2008,2009 Juan Cespedes
  * Copyright (C) 2006 Ian Wienand
  * Copyright (C) 2006 Steve Fink
@@ -256,11 +256,12 @@
 	return written;
 }
 
+static const char null_message[] = "nil";
 int
 format_pointer(FILE *stream, struct value *value, struct value_dict *arguments)
 {
 	if (value_is_zero(value, arguments))
-		return fprintf(stream, "nil");
+		return fprintf(stream, null_message);
 
 	/* The following is for detecting recursion.  We keep track of
 	 * the values that were already displayed.  Each time a
@@ -417,6 +418,8 @@
 		return format_struct(stream, value, arguments);
 
 	case ARGTYPE_POINTER:
+		if (value_is_zero(value, arguments))
+			return fprintf(stream, null_message);
 		if (value->type->u.array_info.elt_type->type != ARGTYPE_VOID)
 			return format_pointer(stream, value, arguments);
 		return format_integer(stream, value, INT_FMT_x, arguments);
diff --git a/testsuite/ltrace.main/parameters2.exp b/testsuite/ltrace.main/parameters2.exp
index a563d31..6318fc5 100644
--- a/testsuite/ltrace.main/parameters2.exp
+++ b/testsuite/ltrace.main/parameters2.exp
@@ -245,4 +245,18 @@
     get_string();
 }] {get_string\(\) *= "FOO"} == 1
 
+# Test that void* NULL's are displayed as "nil" as well.
+
+ltraceMatch1 [ltraceLibTest {
+    addr somefunc();
+} {
+    void *somefunc(void);
+} {
+    void *somefunc(void) {
+        return 0;
+    }
+} {
+    somefunc();
+}] {somefunc\(\) *= nil} == 1
+
 ltraceDone