diff --git a/src/docode.c b/src/docode.c
index ed41649493a3f49d03b471ab552eebd39a5e2252..ffa3b103cea614d6462e3e52630027cdac0e80aa 100644
--- a/src/docode.c
+++ b/src/docode.c
@@ -4,7 +4,7 @@
 ||| See the files COPYING and DISCLAIMER for more information.
 \*/
 #include "global.h"
-RCSID("$Id: docode.c,v 1.34 1998/03/31 21:52:16 hubbe Exp $");
+RCSID("$Id: docode.c,v 1.35 1998/04/06 03:51:54 hubbe Exp $");
 #include "las.h"
 #include "program.h"
 #include "language.h"
@@ -994,41 +994,6 @@ static int do_docode2(node *n,int flags)
       emit(F_ARROW_STRING, store_prog_string(CDR(n)->u.sval.u.string));
       return 2;
     }else{
-      struct program *p;
-      if(CAR(n) &&
-	 CDR(n) &&
-	 EXTRACT_UCHAR(CAR(n)->type->str)==T_OBJECT &&
-	 (tmp2=EXTRACT_INT(CAR(n)->type->str+1)) &&
-	 (p=id_to_program(tmp2)) &&
-	 (FIND_LFUN(p,LFUN_ARROW)==-1) &&
-	 CDR(n)->token == F_CONSTANT &&
-	 CDR(n)->u.sval.type==T_STRING)
-      {
-	tmp3=find_shared_string_identifier(CDR(n)->u.sval.u.string,p);
-	if(tmp3==-1)
-	{
-	  yywarning("Accessing a non-existant identifier");
-	  DO_CODE_BLOCK(CAR(n));
-	  emit(F_NUMBER,0);
-	  return 1;
-	}else{
-	  struct identifier *i=ID_FROM_INT(p,tmp3);
-	  if(IDENTIFIER_IS_FUNCTION(i->identifier_flags))
-	  {
-	    tmp1=do_docode(CAR(n), DO_NOT_COPY);
-	    emit(F_STRICT_ARROW, tmp3);
-	    emit(F_DATA, tmp2);
-	    return tmp1;
-	  }
-	  if(IDENTIFIER_IS_VARIABLE(i->identifier_flags))
-	  {
-	    tmp1=do_docode(CAR(n), DO_NOT_COPY);
-	    emit(F_STRICT_ARROW_VARIABLE, tmp3);
-	    emit(F_DATA, tmp2);
-	    return tmp1;
-	  }
-	}
-      }
       tmp1=do_docode(CAR(n), DO_NOT_COPY);
       emit(F_ARROW, store_prog_string(CDR(n)->u.sval.u.string));
       if(!(flags & DO_NOT_COPY))
diff --git a/src/language.yacc b/src/language.yacc
index 3f1af533abb24f1aad845612382eef5e9ec08d34..6bf4228ba543c8ed2d200b5c9222491705b0734a 100644
--- a/src/language.yacc
+++ b/src/language.yacc
@@ -27,8 +27,7 @@
 
 %token F_INDEX F_ARROW F_INDIRECT F_STRING_INDEX F_LOCAL_INDEX
 %token F_LOCAL_LOCAL_INDEX
-%token F_POS_INT_INDEX F_NEG_INT_INDEX F_STRICT_ARROW
-%token F_STRICT_ARROW_VARIABLE
+%token F_POS_INT_INDEX F_NEG_INT_INDEX
 %token F_LTOSVAL F_LTOSVAL2
 %token F_PUSH_ARRAY 
 %token F_RANGE F_COPY_VALUE
@@ -170,7 +169,7 @@
 /* This is the grammar definition of Pike. */
 
 #include "global.h"
-RCSID("$Id: language.yacc,v 1.68 1998/04/01 00:47:47 hubbe Exp $");
+RCSID("$Id: language.yacc,v 1.69 1998/04/06 04:06:41 hubbe Exp $");
 #ifdef HAVE_MEMORY_H
 #include <memory.h>
 #endif
diff --git a/src/lex.c b/src/lex.c
index d9ebea83278fd0cefb1cda92f9901160abea3ff8..fa91aeb1e86bb74f7d5cc1d9c02abdb4d8211480 100644
--- a/src/lex.c
+++ b/src/lex.c
@@ -4,7 +4,7 @@
 ||| See the files COPYING and DISCLAIMER for more information.
 \*/
 #include "global.h"
-RCSID("$Id: lex.c,v 1.47 1998/04/01 00:47:48 hubbe Exp $");
+RCSID("$Id: lex.c,v 1.48 1998/04/06 04:09:05 hubbe Exp $");
 #include "language.h"
 #include "array.h"
 #include "lex.h"
@@ -130,8 +130,6 @@ struct keyword instr_names[]=
 { "global",		F_GLOBAL, I_HASARG },
 { "index",              F_INDEX },
 { "->x",                F_ARROW, I_HASARG },
-{ "object(const)->func",      F_STRICT_ARROW, I_HASARG },
-{ "object(const)->var",      F_STRICT_ARROW_VARIABLE, I_HASARG },
 { "clear string subtype", F_CLEAR_STRING_SUBTYPE },
 { "arrow string",       F_ARROW_STRING, I_HASARG },
 { "indirect",		F_INDIRECT },