Index: /trunk/Ohana/src/libohana/src/errors.c
===================================================================
--- /trunk/Ohana/src/libohana/src/errors.c	(revision 40327)
+++ /trunk/Ohana/src/libohana/src/errors.c	(revision 40328)
@@ -1,9 +1,25 @@
 # include "ohana.h"
 
-static char errorline[1024];
+int Nline = 0;
+int NLINE = 0;
+char **errorlines = NULL;
 
 int init_error () {
 
-  bzero (errorline, 1024);
+  if (!errorlines) {
+    NLINE = 10;
+    ALLOCATE (errorlines, char *, NLINE);
+    for (int i = 0; i < NLINE; i++) {
+      errorlines[i] = NULL;
+    }
+  }
+
+  for (int i = 0; i < NLINE; i++) {
+    FREE (errorlines[i]);
+    errorlines[i] = NULL;
+  }
+
+  Nline = 0;
+
   return (TRUE);
 }
@@ -11,6 +27,15 @@
 int push_error (char *line) {
 
-  bzero (errorline, 1024);
-  strncpy (errorline, line, 1023);
+  errorlines[Nline] = strcreate (line);
+  Nline ++;
+
+  if (Nline >= NLINE) {
+    NLINE += 10;
+    REALLOCATE (errorlines, char *, NLINE);
+    for (int i = Nline; i < NLINE; i++) {
+      errorlines[i] = NULL;
+    }
+  }
+
   return (TRUE);
 }
@@ -18,5 +43,10 @@
 int print_error () {
 
-  gprint (GP_ERR, "%s\n", errorline);
+  for (int i = 0; i < Nline; i++) {
+    gprint (GP_ERR, "%s\n", errorlines[i]);
+  }
+  
+  init_error();
+
   return (TRUE);
 }
