diff -urN see-devel/Makefile /var/tmp/see-devel/Makefile
--- see-devel/Makefile	Fri May  9 19:11:13 2008
+++ /var/tmp/see-devel/Makefile	Thu Aug 21 13:56:39 2008
@@ -7,7 +7,7 @@
 
 PORTNAME=	see
 PORTVERSION=	3.0.1376
-PORTREVISION=	1
+PORTREVISION=	2
 CATEGORIES=	lang devel
 MASTER_SITES=	http://www.evolane.com/download/mirror/etcl/ \
 		http://www.evolane.fr/download/mirror/etcl/
diff -urN see-devel/files/patch-libsee_parse.c /var/tmp/see-devel/files/patch-libsee_parse.c
--- see-devel/files/patch-libsee_parse.c	Thu Jan  1 01:00:00 1970
+++ /var/tmp/see-devel/files/patch-libsee_parse.c	Thu Aug 21 13:55:42 2008
@@ -0,0 +1,18 @@
+--- libsee/parse.c.orig	Sun Feb 10 05:59:48 2008
++++ libsee/parse.c	Thu Aug 21 13:07:30 2008
+@@ -27,7 +27,7 @@
+  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+  * POSSIBILITY OF SUCH DAMAGE.
+  */
+-/* $Id: parse.c 1371 2008-02-10 04:59:09Z d $ */
++/* $Id: parse.c 1381 2008-03-05 07:29:31Z d $ */
+ 
+ /*
+  * Combined parser and evaluator.
+@@ -12317,6 +12317,7 @@
+ 		&SourceElements_nodeclass); 
+ 	ss->statements = s;
+ 	ss->functions = NULL;
++	ss->vars = NULL;
+ 	return (struct node *)ss;
+ }
diff -urN see-devel/files/patch-libsee_value.c /var/tmp/see-devel/files/patch-libsee_value.c
--- see-devel/files/patch-libsee_value.c	Thu Jan  1 01:00:00 1970
+++ /var/tmp/see-devel/files/patch-libsee_value.c	Thu Aug 21 13:55:31 2008
@@ -0,0 +1,40 @@
+--- libsee/value.c.orig	Sat Feb  9 13:54:59 2008
++++ libsee/value.c	Thu Aug 21 13:07:30 2008
+@@ -27,7 +27,7 @@
+  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+  * POSSIBILITY OF SUCH DAMAGE.
+  */
+-/* $Id: value.c 1370 2008-02-09 12:54:24Z d $ */
++/* $Id: value.c 1383 2008-07-03 13:56:11Z d $ */
+ 
+ #if HAVE_CONFIG_H
+ # include <config.h>
+@@ -289,14 +289,17 @@
+ 		} else if (SEE_NUMBER_ISPINF(val)) {
+ 			SEE_SET_STRING(res, STR(Infinity));
+ 		} else {
+-			char *a, *endstr;
++			char *a0, *a, *endstr;
+ 			struct SEE_string *s;
+ 			int sign, k, n, i, exponent;
+ 			int len;
+ 
+-			a = SEE_dtoa(val->u.number, DTOA_MODE_SHORT_SW, 31, 
++			a0 = SEE_dtoa(val->u.number, DTOA_MODE_SHORT_SW, 31, 
+ 				&n, &sign, &endstr);
+-			k = (int)(endstr - a);
++			k = (int)(endstr - a0);
++			a = SEE_STRING_ALLOCA(interp, char, k);
++			memcpy(a, a0, k);
++			SEE_freedtoa(a0);
+ 
+ 			/* Numbers converted to strings are generally
+ 			 * small and short-lived. */
+@@ -359,7 +362,6 @@
+ 			}
+ 			SEE_ASSERT(interp, len == s->length);
+ 			SEE_SET_STRING(res, s);
+-			SEE_freedtoa(a);
+ 		} 
+ 		break;
+ 	case SEE_STRING: