diff --git a/include/core/common/wolf.h b/include/core/common/wolf.h
index 2553117f39370d0ccc01e4344a14f7a05f1e5180..25e9325fd3b61f425f085bd47e9b788ebd494aa9 100644
--- a/include/core/common/wolf.h
+++ b/include/core/common/wolf.h
@@ -197,12 +197,19 @@ struct MatrixSizeCheck
 //      TYPEDEFS FOR POINTERS, LISTS AND ITERATORS IN THE WOLF TREE
 /////////////////////////////////////////////////////////////////////////
 
+#define WOLF_DECLARED_PTR_TYPEDEFS(Name) \
+        typedef std::shared_ptr<Name>          Name##Ptr; \
+        typedef std::shared_ptr<const Name>    Name##ConstPtr; \
+        typedef std::weak_ptr<Name>            Name##WPtr; \
+        typedef std::weak_ptr<const Name>      Name##ConstWPtr; \
+
 #define WOLF_PTR_TYPEDEFS(ClassName) \
         class ClassName; \
-        typedef std::shared_ptr<ClassName>          ClassName##Ptr; \
-        typedef std::shared_ptr<const ClassName>    ClassName##ConstPtr; \
-        typedef std::weak_ptr<ClassName>            ClassName##WPtr; \
-        typedef std::weak_ptr<const ClassName>      ClassName##ConstWPtr; \
+        WOLF_DECLARED_PTR_TYPEDEFS(ClassName); \
+
+#define WOLF_STRUCT_PTR_TYPEDEFS(StructName) \
+        struct StructName; \
+        WOLF_DECLARED_PTR_TYPEDEFS(StructName); \
 
 #define WOLF_LIST_TYPEDEFS(ClassName) \
         class ClassName; \
@@ -223,10 +230,6 @@ struct MatrixSizeCheck
         typedef ClassName##ConstWPtrList::const_iterator   ClassName##ConstWPtrListConstIter; \
         typedef ClassName##ConstWPtrList::reverse_iterator ClassName##ConstWPtrListRevIter; \
 
-#define WOLF_STRUCT_PTR_TYPEDEFS(StructName) \
-        struct StructName; \
-        typedef std::shared_ptr<StructName>          StructName##Ptr; \
-        typedef std::shared_ptr<const StructName>    StructName##ConstPtr; \
 
 // NodeBase
 WOLF_PTR_TYPEDEFS(NodeBase);