Index: src/ResolvExpr/Resolver.cc
===================================================================
--- src/ResolvExpr/Resolver.cc	(revision 40404257da8f22441f6123bdbff37bdb54e0e5f3)
+++ src/ResolvExpr/Resolver.cc	(revision 3aba31104a0151fe62a14a3d7b03185117894c84)
@@ -10,6 +10,6 @@
 // Created On       : Sun May 17 12:17:01 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Feb  9 21:57:52 2016
-// Update Count     : 179
+// Last Modified On : Thu Mar 24 16:43:11 2016
+// Update Count     : 181
 //
 
@@ -165,6 +165,13 @@
 		Type *new_type = resolveTypeof( objectDecl->get_type(), *this );
 		objectDecl->set_type( new_type );
+		// To handle initialization of routine pointers, e.g., int (*fp)(int) = foo(), means that class-variable
+		// initContext is changed multiple time because the LHS is analysed twice. The second analysis changes
+		// initContext because of a function type can contain object declarations in the return and parameter types. So
+		// each value of initContext is retained, so the type on the first analysis is preserved and used for selecting
+		// the RHS.
+		Type *temp = initContext;
 		initContext = new_type;
 		SymTab::Indexer::visit( objectDecl );
+		initContext = temp;
 	}
 
