diff --git a/src/las.c b/src/las.c
index d091e616c7c553042af94f35d14ee690b32c4cb5..1c3b86a39d1eb23381c4d23a5d4fc07d11720721 100644
--- a/src/las.c
+++ b/src/las.c
@@ -4,7 +4,7 @@
 ||| See the files COPYING and DISCLAIMER for more information.
 \*/
 #include "global.h"
-RCSID("$Id: las.c,v 1.23 1997/02/27 10:34:46 hubbe Exp $");
+RCSID("$Id: las.c,v 1.24 1997/02/27 10:39:42 hubbe Exp $");
 
 #include "language.h"
 #include "interpret.h"
@@ -497,10 +497,20 @@ node *index_node(node *n, struct pike_string * id)
     push_int(0);
   }else{
     resolv_constant(n);
-    if(sp[-1].type==T_INT)
+    switch(sp[-1].type)
     {
+    case T_INT:
       yyerror("Failed to index module (module doesn't exist?)");
-    }else{
+      break;
+
+    case T_PROGRAM:
+    case T_FLOAT:
+    case T_STRING:
+    case T_ARRAY:
+      yyerror("Failed to index module (Not a module?)");
+      break;
+
+    default:
       push_string(id);
       reference_shared_string(id);
       f_index(2);