diff --git a/src/las.c b/src/las.c
index be532e26da2a72c7cbc9fe21b9276bd726976596..db30eae4ab3467c87d1e4938c18fb85556d005ed 100644
--- a/src/las.c
+++ b/src/las.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: las.c,v 1.216 2000/09/26 22:19:03 hubbe Exp $");
+RCSID("$Id: las.c,v 1.217 2000/09/28 16:26:01 grubba Exp $");
 
 #include "language.h"
 #include "interpret.h"
@@ -4193,13 +4193,14 @@ static void optimize(node *n)
       tmp1 = freeze_node(n);
       if (tmp1 != n) {
 	/* n was a duplicate node. Use the original. */
+	/* Make sure the original isn't defrosted too. */
+	tmp1->node_info &= ~OPT_DEFROSTED;
 	goto use_tmp1;
       }
       /* Remove the extra ref from n */
       free_node(n);
-#else /* IN_TPIKE */
-      n->node_info &= ~OPT_DEFROSTED;
 #endif /* !IN_TPIKE */
+      n->node_info &= ~OPT_DEFROSTED;
       if (n->node_info & OPT_OPTIMIZED) {
 	/* No need to check this node any more. */
 	n = n->parent;