Index: src/SymTab/Validate.cc
===================================================================
--- src/SymTab/Validate.cc	(revision 33f5b576fd2e5b3ed18289b512513c65f5f1c3b7)
+++ src/SymTab/Validate.cc	(revision bbf3fdad94d81a92cc995074c21218db29cd0fbe)
@@ -148,4 +148,5 @@
 		void previsit( ObjectDecl * object );
 		void previsit( FunctionDecl * func );
+		void previsit( FunctionType * ftype );
 		void previsit( StructDecl * aggrDecl );
 		void previsit( UnionDecl * aggrDecl );
@@ -633,8 +634,4 @@
 
 	void ForallPointerDecay::previsit( ObjectDecl *object ) {
-		forallFixer( object->type->forall, object );
-		if ( PointerType *pointer = dynamic_cast< PointerType * >( object->type ) ) {
-			forallFixer( pointer->base->forall, object );
-		} // if
 		// ensure that operator names only apply to functions or function pointers
 		if ( CodeGen::isOperator( object->name ) && ! dynamic_cast< FunctionType * >( object->type->stripDeclarator() ) ) {
@@ -645,6 +642,9 @@
 
 	void ForallPointerDecay::previsit( FunctionDecl *func ) {
-		forallFixer( func->type->forall, func );
 		func->fixUniqueId();
+	}
+
+	void ForallPointerDecay::previsit( FunctionType * ftype ) {
+		forallFixer( ftype->forall, ftype );
 	}
 
Index: src/libcfa/stdlib.c
===================================================================
--- src/libcfa/stdlib.c	(revision 33f5b576fd2e5b3ed18289b512513c65f5f1c3b7)
+++ src/libcfa/stdlib.c	(revision bbf3fdad94d81a92cc995074c21218db29cd0fbe)
@@ -99,7 +99,7 @@
 	char * eeptr;
 	re = strtof( sptr, &eeptr );
-	if ( sptr == *eeptr ) { if ( eptr != 0 ) *eptr = eeptr; return 0.0f + 0.0f * _Complex_I; }
+	if ( sptr == eeptr ) { if ( eptr != 0 ) *eptr = eeptr; return 0.0f + 0.0f * _Complex_I; }
 	im = strtof( eeptr, &eeptr );
-	if ( sptr == *eeptr ) { if ( eptr != 0 ) *eptr = eeptr; return 0.0f + 0.0f * _Complex_I; }
+	if ( sptr == eeptr ) { if ( eptr != 0 ) *eptr = eeptr; return 0.0f + 0.0f * _Complex_I; }
 	if ( *eeptr != 'i' ) { if ( eptr != 0 ) *eptr = eeptr; return 0.0f + 0.0f * _Complex_I; }
 	return re + im * _Complex_I;
@@ -110,7 +110,7 @@
 	char * eeptr;
 	re = strtod( sptr, &eeptr );
-	if ( sptr == *eeptr ) { if ( eptr != 0 ) *eptr = eeptr; return 0.0 + 0.0 * _Complex_I; }
+	if ( sptr == eeptr ) { if ( eptr != 0 ) *eptr = eeptr; return 0.0 + 0.0 * _Complex_I; }
 	im = strtod( eeptr, &eeptr );
-	if ( sptr == *eeptr ) { if ( eptr != 0 ) *eptr = eeptr; return 0.0 + 0.0 * _Complex_I; }
+	if ( sptr == eeptr ) { if ( eptr != 0 ) *eptr = eeptr; return 0.0 + 0.0 * _Complex_I; }
 	if ( *eeptr != 'i' ) { if ( eptr != 0 ) *eptr = eeptr; return 0.0 + 0.0 * _Complex_I; }
 	return re + im * _Complex_I;
@@ -121,7 +121,7 @@
 	char * eeptr;
 	re = strtold( sptr, &eeptr );
-	if ( sptr == *eeptr ) { if ( eptr != 0 ) *eptr = eeptr; return 0.0L + 0.0L * _Complex_I; }
+	if ( sptr == eeptr ) { if ( eptr != 0 ) *eptr = eeptr; return 0.0L + 0.0L * _Complex_I; }
 	im = strtold( eeptr, &eeptr );
-	if ( sptr == *eeptr ) { if ( eptr != 0 ) *eptr = eeptr; return 0.0L + 0.0L * _Complex_I; }
+	if ( sptr == eeptr ) { if ( eptr != 0 ) *eptr = eeptr; return 0.0L + 0.0L * _Complex_I; }
 	if ( *eeptr != 'i' ) { if ( eptr != 0 ) *eptr = eeptr; return 0.0L + 0.0L * _Complex_I; }
 	return re + im * _Complex_I;
