--- ipe/uilua.cpp.orig	2011-10-22 18:50:52.000000000 +0200
+++ ipe/uilua.cpp	2011-10-22 18:52:31.000000000 +0200
@@ -36,6 +36,7 @@
 
 #include <cstdio>
 #include <cstdlib>
+#include <vector>
 
 #ifdef IPEUI_QT
 #include "ipeselector_qt.h"
@@ -543,14 +544,14 @@
   AppUiBase **ui = check_appui(L, 1);
   luaL_argcheck(L, lua_istable(L, 2), 2, "argument is not a table");
   int no = lua_objlen(L, 2);
-  String bm[no];
+  std::vector<String> bm(no);
   for (int i = 1; i <= no; ++i) {
     lua_rawgeti(L, 2, i);
     luaL_argcheck(L, lua_isstring(L, -1), 2, "item is not a string");
     bm[i-1] = String(lua_tostring(L, -1));
     lua_pop(L, 1);
   }
-  (*ui)->setBookmarks(no, bm);
+  (*ui)->setBookmarks(no, &bm[0]);
   return 0;
 }
 
