diff --git a/src/treeopt.in b/src/treeopt.in
index 9a2ec7df97cfbf464137a2b28bb7cf932dcf9981..4aafead1878bcb3545185208d19be19647cbc309 100644
--- a/src/treeopt.in
+++ b/src/treeopt.in
@@ -1,6 +1,6 @@
 // -*- c -*-
 //
-// $Id: treeopt.in,v 1.48 2000/10/02 23:00:21 grubba Exp $
+// $Id: treeopt.in,v 1.49 2000/10/03 12:16:51 grubba Exp $
 //
 // The tree optimizer
 //
@@ -77,6 +77,8 @@ F_APPLY(0 = F_CONSTANT
     n->hash = hash_node(n);
     n->node_info |= OPT_DEFROSTED;
 #endif /* SHARED_NODES */
+    _CDR(n)->parent = NULL;
+    fix_type_field(_CDR(n));
     free_node(arglist);
 #ifdef PIKE_DEBUG
     if (l_flag > 4) {
@@ -108,6 +110,8 @@ F_APPLY(0 = F_CONSTANT
     n->hash = hash_node(n);
     n->node_info |= OPT_DEFROSTED;
 #endif /* SHARED_NODES */
+    _CDR(n)->parent = NULL;
+    fix_type_field(_CDR(n));
     free_node(arglist);
 #ifdef PIKE_DEBUG
     if (l_flag > 4) {
@@ -141,6 +145,8 @@ F_APPLY(0 = F_CONSTANT
     n->hash = hash_node(n);
     n->node_info |= OPT_DEFROSTED;
 #endif /* SHARED_NODES */
+    _CDR(n)->parent = NULL;
+    fix_type_field(_CDR(n));
     free_node(arglist);
 #ifdef PIKE_DEBUG
     if (l_flag > 4) {