diff --git a/src/pike_types.c b/src/pike_types.c
index 4d1a50d7a26a2ee49801c536c028e7416c52955d..d14c9679039795dc97d85b2660be3b491f8cbef0 100644
--- a/src/pike_types.c
+++ b/src/pike_types.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: pike_types.c,v 1.82 1999/11/27 07:42:56 hubbe Exp $");
+RCSID("$Id: pike_types.c,v 1.83 1999/11/27 22:23:05 hubbe Exp $");
 #include <ctype.h>
 #include "svalue.h"
 #include "pike_types.h"
@@ -2651,9 +2651,10 @@ struct pike_string *zzap_function_return(char *a, INT32 id)
       push_type(T_FUNCTION);
       return pop_unfinished_type();
   }
+/* This error is bogus /Hubbe
   fatal("zzap_function_return() called with unexpected value: %d\n",
 	EXTRACT_UCHAR(a));
-  /* NOT_REACHED */
+*/
   return NULL;
 }
 
@@ -2753,6 +2754,12 @@ struct pike_string *get_type_of_svalue(struct svalue *s)
     }
     if((tmp=zzap_function_return(a, s->u.program->id)))
       return tmp;
+
+    a=function_type_string->str;
+    if((tmp=zzap_function_return(a, s->u.program->id)))
+      return tmp;
+
+    fatal("Completely failed to zzap function return!\n");
   }
 
   default: