@@ -0,0 +1,26 @@
+--- src/extension/script/inkscape_perl_wrap.cpp
++++ src/extension/script/inkscape_perl_wrap.cpp
+@@ -776,14 +776,17 @@
+ static void _swig_create_magic(CPerlObj *pPerl, SV *sv, const char *name, int (CPerlObj::*set)(SV *, MAGIC *), int (CPerlObj::*get)(SV *, MAGIC *)) {
+ #endif
+ MAGIC *mg;
++ MGVTBL *mgvtbl;
+ sv_magic(sv,sv,'U',(char *) name,strlen(name));
+ mg = mg_find(sv,'U');
+- mg->mg_virtual = (MGVTBL *) malloc(sizeof(MGVTBL));
+- mg->mg_virtual->svt_get = (SwigMagicFuncHack) get;
+- mg->mg_virtual->svt_set = (SwigMagicFuncHack) set;
+- mg->mg_virtual->svt_len = 0;
+- mg->mg_virtual->svt_clear = 0;
+- mg->mg_virtual->svt_free = 0;
++ mgvtbl = (MGVTBL *) malloc(sizeof(MGVTBL));
++ memcpy((void*)mgvtbl, (const void*)mg, sizeof(MGVTBL));
++ mgvtbl->svt_get = (SwigMagicFuncHack) get;
++ mgvtbl->svt_set = (SwigMagicFuncHack) set;
++ mgvtbl->svt_len = 0;
++ mgvtbl->svt_clear = 0;
++ mgvtbl->svt_free = 0;
++ mg->mg_virtual = mgvtbl;
+ }
+
+
|