diff --git a/src/las.c b/src/las.c
index b24605392983018308416b3596de86f9b6be3e92..ea4fe9021c4713f1560c065783da950d75f9f66a 100644
--- a/src/las.c
+++ b/src/las.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: las.c,v 1.153 1999/12/29 18:02:00 grubba Exp $");
+RCSID("$Id: las.c,v 1.154 1999/12/29 19:20:32 grubba Exp $");
 
 #include "language.h"
 #include "interpret.h"
@@ -2607,9 +2607,16 @@ void fix_type_field(node *n)
     break;
 
   case F_MAGIC_INDEX:
+    /* FIXME: Could have a stricter type for ::`->(). */
+    MAKE_CONSTANT_SHARED_STRING(n->type, tFunc(tMix,tMix));
+    break;
   case F_MAGIC_SET_INDEX:
+    /* FIXME: Could have a stricter type for ::`->=(). */
+    MAKE_CONSTANT_SHARED_STRING(n->type, tFunc(tMix tSetvar(0,tMix), tVar(0)));
+    break;
+
   case F_CATCH:
-    /* FIXME: FALL_THROUGH */
+    /* FALL_THROUGH */
   default:
     copy_shared_string(n->type,mixed_type_string);
   }