diff --git a/mrw/stacktrace.cpp b/mrw/stacktrace.cpp
index 1b930d2..de7de73 100644
--- a/mrw/stacktrace.cpp
+++ b/mrw/stacktrace.cpp
@@ -9,6 +9,9 @@
@license LGPL, see file COPYING
$Log$
+ Revision 1.9 2005/01/07 00:34:38 marc
+ some changes for solaris
+
Revision 1.8 2004/12/20 13:22:25 marc
mrw string now throws exceptions, catch needed
@@ -103,8 +106,12 @@ namespace mrw {
confusing the demangler. */
const char* p(name);
while (p && *p == '.') ++p;
-
- Auto::Free res(cplus_demangle(p, DMGL_ANSI | DMGL_PARAMS));
+# ifdef __solaris__
+ char res[1024];
+ if (cplus_demangle(p, res, 1024)) return name;
+# else
+ Auto::Free res(cplus_demangle(p, DMGL_ANSI | DMGL_PARAMS));
+# endif
if (res) {
/* Now put back any stripped dots. */
if (p==name) return static_cast(res);
@@ -244,17 +251,17 @@ bool mrw::StackTrace::createSymtable(const mrw::StackTrace::BinFiles& files)
mrw::StackTrace::BinFiles mrw::StackTrace::filename()
throw(std::bad_exception) {
mrw::StackTrace::BinFiles res;
-# if defined(__solaris__)
+# if defined(__solaris__)
{
std::string s;
s<<"/proc/"<