I get the following while compiling: /usr/bin/c++ -D_POSIX_C_SOURCE=199506L -DNDEBUG -DUSING_GCC -D_POSIX_PTHREAD_SEMANTICS -DLINUX -I../inc -I../3rd_party/ACE-5.3.0/ACE_wrappers -fPIC -pedantic -fno-for-scope -Wno-long-long -Wno-deprecated -o Trace.o.linux -c Trace.cpp In file included from ../3rd_party/ACE-5.3.0/ACE_wrappers/ace/Unbounded_Set.h:306, from ../3rd_party/ACE-5.3.0/ACE_wrappers/ace/Memory_Pool.h:30, from ../3rd_party/ACE-5.3.0/ACE_wrappers/ace/Malloc.h:414, from ../3rd_party/ACE-5.3.0/ACE_wrappers/ace/String_Base.cpp:3, from ../3rd_party/ACE-5.3.0/ACE_wrappers/ace/String_Base.h:423, from ../3rd_party/ACE-5.3.0/ACE_wrappers/ace/SString.h:17, from ../3rd_party/ACE-5.3.0/ACE_wrappers/ace/Configuration.h:34, from ../3rd_party/ACE-5.3.0/ACE_wrappers/ace/Configuration_Import_Export.h:28, from ../inc/TraceConfig.h:12, from Trace.cpp:10: ../3rd_party/ACE-5.3.0/ACE_wrappers/ace/Unbounded_Set.cpp: In member function `void ACE_Unbounded_Set<T>::delete_nodes()': ../3rd_party/ACE-5.3.0/ACE_wrappers/ace/Unbounded_Set.cpp:105: error: expected class-name before '(' token ../3rd_party/ACE-5.3.0/ACE_wrappers/ace/Unbounded_Set.cpp: In destructor `ACE_Unbounded_Set<T>::~ACE_Unbounded_Set()': ../3rd_party/ACE-5.3.0/ACE_wrappers/ace/Unbounded_Set.cpp:124: error: expected class-name before '(' token ../3rd_party/ACE-5.3.0/ACE_wrappers/ace/Unbounded_Set.cpp: In member function `int ACE_Unbounded_Set<T>::remove(const T&)': ../3rd_party/ACE-5.3.0/ACE_wrappers/ace/Unbounded_Set.cpp:228: error: expected class-name before '(' token the macro defined before the '(' token is : # define ACE_DES_FREE_TEMPLATE(POINTER,DEALLOCATOR,T_CLASS,T_PARAMETER) \ do { \ if (POINTER) \ { \ (POINTER)->~T_CLASS (); \ DEALLOCATOR (POINTER); \ } \ } \ while (0) Any ideas? On 3.2.2 all compiles fine EZ