diff -urp ltrace-0.5/configure.ac ltrace-0.5-pm/configure.ac
--- ltrace-0.5/configure.ac 2006-06-14 06:55:21.000000000 +0200
+++ ltrace-0.5-pm/configure.ac 2010-09-08 14:56:29.000000000 +0200
@@ -16,6 +16,7 @@ AC_PROG_INSTALL
dnl Checks for libraries.
AC_CHECK_LIB(iberty, cplus_demangle,,,)
AC_CHECK_LIB(supc++, __cxa_demangle,,,)
+AC_CHECK_LIB(stdc++, __cxa_demangle,,,)
dnl
dnl The following stuff may be useful, but I don't use it now.
diff -urp ltrace-0.5/demangle.c ltrace-0.5-pm/demangle.c
--- ltrace-0.5/demangle.c 2006-02-20 22:48:07.000000000 +0100
+++ ltrace-0.5-pm/demangle.c 2010-09-08 15:06:23.000000000 +0200
@@ -9,6 +9,7 @@
#include "options.h"
#include "output.h"
#include "demangle.h"
+#include "ltrace.h"
#include "dict.h"
diff -up ltrace-0.5/demangle.c\~ ltrace-0.5/demangle.c
--- ltrace-0.5/demangle.c~ 2006-02-20 22:48:07.000000000 +0100
+++ ltrace-0.5/demangle.c 2010-09-08 15:21:44.000000000 +0200
@@ -28,7 +28,7 @@ static void my_demangle_dict_clear(void)
const char *my_demangle(const char *function_name)
{
const char *tmp, *fn_copy;
-#if !defined HAVE_LIBIBERTY && defined HAVE_LIBSUPC__
+#ifdef USE_CXA_DEMANGLE
extern char *__cxa_demangle(const char *, char *, size_t *, int *);
int status = 0;
#endif
@@ -42,7 +42,7 @@ const char *my_demangle(const char *func
fn_copy = strdup(function_name);
#ifdef HAVE_LIBIBERTY
tmp = cplus_demangle(function_name, DMGL_ANSI | DMGL_PARAMS);
-#elif defined HAVE_LIBSUPC__
+#elif defined USE_CXA_DEMANGLE
tmp = __cxa_demangle(function_name, NULL, NULL, &status);
#endif
if (!tmp)
diff -up ltrace-0.5/ltrace.h\~ ltrace-0.5/ltrace.h
--- ltrace-0.5/ltrace.h~ 2010-09-08 15:30:25.000000000 +0200
+++ ltrace-0.5/ltrace.h 2010-09-08 15:38:27.000000000 +0200
@@ -14,7 +14,10 @@
#define MAX_LIBRARY 30
#define TRACE_FORK 1
-#if defined HAVE_LIBIBERTY || defined HAVE_LIBSUPC__
+#if defined HAVE_LIBSUPC__ || defined HAVE_LIBSTDC__
+# define USE_CXA_DEMANGLE
+#endif
+#if defined HAVE_LIBIBERTY || defined USE_CXA_DEMANGLE
# define USE_DEMANGLE
#endif