Index: core/workspace.c
===================================================================
--- core/workspace.c	(revision 3816)
+++ core/workspace.c	(working copy)
@@ -514,9 +514,12 @@
       MetaWindow *win = tmp->data;
       GSList *s_iter;
 
-      for (s_iter = win->struts; s_iter != NULL; s_iter = s_iter->next)
+      for (s_iter = win->struts; s_iter != NULL; s_iter = s_iter->next) {
+        MetaStrut *cpy = g_new (MetaStrut, 1);
+        *cpy = *((MetaStrut *)s_iter->data);
         workspace->all_struts = g_slist_prepend (workspace->all_struts,
-                                                 s_iter->data);
+                                                 cpy);
+      }
     }
   g_list_free (windows);
 
