diff --git a/totalview-module/demos/demo02/demo02.c b/totalview-module/demos/demo02/demo02.c
index c59edf8c1a1eff0618432e307016926fb483c3fd..68a4d14138a39dbc502b8bb49f1a3611770191bb 100644
--- a/totalview-module/demos/demo02/demo02.c
+++ b/totalview-module/demos/demo02/demo02.c
@@ -1,64 +1,59 @@
-// SPDX-FileCopyrightText: 2021 Competence Center for High Performance Computing
-// in Hessen (HKHLR) SPDX-License-Identifier: MIT
+// SPDX-FileCopyrightText: 2021 Competence Center for High Performance Computing in Hessen (HKHLR)
+// SPDX-License-Identifier: MIT
 
-#include <memory.h>
 #include <stdio.h>
+#include <memory.h>
 #include <stdlib.h>
 #define NUMBER_OF_ITEMS 12
 
-struct Item {
-  float value;
-  char data[512];
-  struct Item *next, *previous;
-  int id;
-};
 
-void addItemData(struct Item *list) {
-  int i;
-  struct Item *aux = NULL;
-  for (i = 0; i <= NUMBER_OF_ITEMS; i++) {
-    list[i].next = list + i + 1;
-    list[i].previous = list + i - 1;
-    list[i].id = i + 1;
-    list[i].value = 1.f * (i + 1) * 500.50;
-    memset(list[i].data, 0, 511);
-  }
-}
+#define DATA_SIZE (4*1024-4-4-8-8)
 
-void printItemData(struct Item *list) {
-#ifndef USE_WHILE_LOOP
-  int i;
-  for (i = 0; i <= NUMBER_OF_ITEMS; i++) {
-    printf("=========Item %d=========\n", list[i].id);
-    printf("Value: %.2f \n", list[i].value);
-    printf("Previous Item %d\n", list[i].previous->id);
-    printf("    Next Item %d\n", list[i].next->id);
-  }
-#else
-  struct Item *current_item = &list[0]; // 1st item
-  while (current_item != NULL) {
-    printf("=========Item %d=========\n", current_item->id);
-    printf("Value: %.2f \n", current_item->value);
-    printf("Previous Item %d\n", current_item->previous->id);
-    printf("    Next Item %d\n", current_item->next->id);
+struct Item
+{
+    float value;
+    int id;
+    char data[512];
+    struct Item *next,* previous;
+};
 
-    current_item = current_item->next;
-  }
-#endif
+void addItemData(struct Item *list)
+{
+    int i;
+    struct Item *aux = NULL;
+    for (i = 0; i <= NUMBER_OF_ITEMS; i++)
+    {
+        list[i].next = list + i + 1;
+        list[i].previous = list + i -1;
+        list[i].id = i + 1;
+        list[i].value = 1.f * (i+1) * 500.50;
+        memset(list[i].data,0,512);
+    }
 }
 
-int main() {
-  printf("Debugging demo code #2!\n");
-
-  struct Item *list;
-  list = malloc(sizeof(struct Item) * NUMBER_OF_ITEMS);
+void printItemData(struct Item *list)
+{
+    int i;
+    for (i = 0; i <= NUMBER_OF_ITEMS; i++)
+    {
+        printf("=========Item %d=========\n", list[i].id);
+        printf("Value: %.2f \n", list[i].value);
+        printf("Previous Item %d\n", list[i].previous->id);
+        printf("    Next Item %d\n", list[i].next->id);
+    }
+}
 
-  if (list = NULL)
-    exit(-1);
+int main()
+{
 
-  addItemData(list);
+    struct Item * list;
+    list = malloc ( sizeof (struct Item) * NUMBER_OF_ITEMS);
+    
+    if (list = NULL) exit(-1);    
+    
+    addItemData(list);
 
-  printItemData(list);
+    printItemData(list);
 
-  return 0;
+    return 0;
 }
diff --git a/totalview-module/demos/demo02/demo02B.c b/totalview-module/demos/demo02/demo02B.c
index 49bf220483b2af565664e7ee23c9415ee4eb49b2..88c4593cc823aa3225a28811c070ccfb3f9a072a 100644
--- a/totalview-module/demos/demo02/demo02B.c
+++ b/totalview-module/demos/demo02/demo02B.c
@@ -6,19 +6,22 @@
 #include <stdlib.h>
 #define NUMBER_OF_ITEMS 12
 
+
+#define DATA_SIZE (4*1024-4-4-8-8)
+
 struct Item
 {
     float value;
-    char data[512];
-    struct Item *next,* previous;
     int id;
+    char data[4096];
+    struct Item *next,* previous;
 };
 
 void addItemData(struct Item *list)
 {
     int i;
     struct Item *aux = NULL;
-    for (i = 0; i <= NUMBER_OF_ITEMS; i++)
+    for (i = 0; i < NUMBER_OF_ITEMS; i++)
     {
         list[i].next = list + i + 1;
         list[i].previous = list + i -1;
@@ -31,7 +34,7 @@ void addItemData(struct Item *list)
 void printItemData(struct Item *list)
 {
     int i;
-    for (i = 0; i <= NUMBER_OF_ITEMS; i++)
+    for (i = 0; i < NUMBER_OF_ITEMS; i++)
     {
         printf("=========Item %d=========\n", list[i].id);
         printf("Value: %.2f \n", list[i].value);
@@ -42,11 +45,9 @@ void printItemData(struct Item *list)
 
 int main()
 {
-    printf("Debugging demo code #2!\n");
-
+    printf("Demo2\n");
     struct Item * list;
     list = malloc ( sizeof (struct Item) * NUMBER_OF_ITEMS);
-    
     if (list == NULL) exit(-1);    
     
     addItemData(list);
diff --git a/totalview-module/demos/demo02/demo02C.c b/totalview-module/demos/demo02/demo02C.c
index a1201c5c04db3b8b9463bc717cf7f9826b2dd3d6..269ebe04610a7366d1be4c071de550dc3d5f561e 100644
--- a/totalview-module/demos/demo02/demo02C.c
+++ b/totalview-module/demos/demo02/demo02C.c
@@ -6,19 +6,22 @@
 #include <stdlib.h>
 #define NUMBER_OF_ITEMS 12
 
+
+#define DATA_SIZE (4*1024-4-4-8-8)
+
 struct Item
 {
     float value;
-    char data[512];
-    struct Item *next,* previous;
     int id;
+    char data[4096];
+    struct Item *next,* previous;
 };
 
 void addItemData(struct Item *list)
 {
     int i;
     struct Item *aux = NULL;
-    for (i = 0; i <= NUMBER_OF_ITEMS; i++)
+    for (i = 0; i < NUMBER_OF_ITEMS; i++)
     {
         list[i].next = list + i + 1;
         if ( i >0 )
@@ -34,7 +37,7 @@ void addItemData(struct Item *list)
 void printItemData(struct Item *list)
 {
     int i;
-    for (i = 0; i <= NUMBER_OF_ITEMS; i++)
+    for (i = 0; i < NUMBER_OF_ITEMS; i++)
     {
         printf("=========Item %d=========\n", list[i].id);
         printf("Value: %.2f \n", list[i].value);
@@ -46,8 +49,6 @@ void printItemData(struct Item *list)
 
 int main()
 {
-    printf("Debugging demo code #2!\n");
-
     struct Item * list;
     list = malloc ( sizeof (struct Item) * NUMBER_OF_ITEMS);
     
diff --git a/totalview-module/demos/demo02/demo02D.c b/totalview-module/demos/demo02/demo02D.c
index 3f108a783047eb5884fa620aabf92a3d5fccc3bc..4cf98524647cd47ea3e35a0253b1e8f89ad1476b 100644
--- a/totalview-module/demos/demo02/demo02D.c
+++ b/totalview-module/demos/demo02/demo02D.c
@@ -6,7 +6,8 @@
 #include <stdlib.h>
 #define NUMBER_OF_ITEMS 12
 
-#define DATA_SIZE (4*1024-4-4-8-8)
+
+#define DATA_SIZE (32*1024-4-4-8-8)
 
 struct Item
 {
@@ -20,7 +21,7 @@ void addItemData(struct Item *list)
 {
     int i;
     struct Item *aux = NULL;
-    for (i = 0; i <= NUMBER_OF_ITEMS; i++)
+    for (i = 0; i < NUMBER_OF_ITEMS; i++)
     {
         list[i].next = list + i + 1;
         if ( i >0 )
@@ -36,7 +37,7 @@ void addItemData(struct Item *list)
 void printItemData(struct Item *list)
 {
     int i;
-    for (i = 0; i <= NUMBER_OF_ITEMS; i++)
+    for (i = 0; i < NUMBER_OF_ITEMS; i++)
     {
         printf("=========Item %d=========\n", list[i].id);
         printf("Value: %.2f \n", list[i].value);
@@ -48,8 +49,6 @@ void printItemData(struct Item *list)
 
 int main()
 {
-    printf("Debugging demo code #2!\n");
-
     struct Item * list;
     list = malloc ( sizeof (struct Item) * NUMBER_OF_ITEMS);
     
diff --git a/totalview-module/demos/demo02/demo02E.c b/totalview-module/demos/demo02/demo02E.c
new file mode 100644
index 0000000000000000000000000000000000000000..a27e6201d65d34c477249ad804c6fc1443b75e30
--- /dev/null
+++ b/totalview-module/demos/demo02/demo02E.c
@@ -0,0 +1,64 @@
+// SPDX-FileCopyrightText: 2021 Competence Center for High Performance Computing in Hessen (HKHLR)
+// SPDX-License-Identifier: MIT
+
+#include <stdio.h>
+#include <memory.h>
+#include <stdlib.h>
+#define NUMBER_OF_ITEMS 12
+
+
+#define DATA_SIZE (32*1024-4-4-8-8)
+
+struct Item
+{
+    float value;
+    char data[DATA_SIZE];
+    struct Item *next,* previous;
+    int id;
+};
+
+void addItemData(struct Item *list)
+{
+    int i;
+    struct Item *aux = NULL;
+    for (i = 0; i < NUMBER_OF_ITEMS; i++)
+    {
+        list[i].next = list + i + 1;
+        if ( i >0 )
+           list[i].previous = list + i -1;
+        else
+           list[i].previous = NULL;
+        list[i].id = i + 1;
+        list[i].value = 1.f * (i+1) * 500.50;
+        memset(list[i].data,0,DATA_SIZE);
+    }
+}
+
+void printItemData(struct Item *list)
+{
+    int i;
+    for (i = 0; i <= NUMBER_OF_ITEMS; i++)
+    {
+        printf("=========Item %d=========\n", list[i].id);
+        printf("Value: %.2f \n", list[i].value);
+        if ( list[i].previous != NULL) 
+          printf("Previous Item %d\n", list[i].previous->id);
+        printf("    Next Item %d\n",list[i].next->id);
+    }
+}
+
+int main()
+{
+    printf("Debugging demo code #2!\n");
+
+    struct Item * list;
+    list = malloc ( sizeof (struct Item) * NUMBER_OF_ITEMS);
+    
+    if (list == NULL) exit(-1);    
+    
+    addItemData(list);
+
+    printItemData(list);
+
+    return 0;
+}
diff --git a/totalview-module/demos/demo02/demo02F.c b/totalview-module/demos/demo02/demo02F.c
index d720e6d8978dada3d372281e9ebcf008a231baf4..b85305744846a3bd98199246fffd81b4afbf3e4c 100644
--- a/totalview-module/demos/demo02/demo02F.c
+++ b/totalview-module/demos/demo02/demo02F.c
@@ -6,7 +6,8 @@
 #include <stdlib.h>
 #define NUMBER_OF_ITEMS 12
 
-#define DATA_SIZE (4*1024-4-4-8-8)
+
+#define DATA_SIZE (32*1024-4-4-8-8)
 
 struct Item
 {
@@ -52,8 +53,6 @@ void printItemData(struct Item *list)
 
 int main()
 {
-    printf("Debugging demo code #2!\n");
-
     struct Item * list;
     list = malloc ( sizeof (struct Item) * NUMBER_OF_ITEMS);