Index: src/ResolvExpr/AdjustExprType.cc
===================================================================
--- src/ResolvExpr/AdjustExprType.cc	(revision e4d3cebea9b65b73a14d75ede42b6858dafb71f5)
+++ src/ResolvExpr/AdjustExprType.cc	(revision 9c791ddf2c2ea0de4b5c1338cd0581fa3dfaa4cc)
@@ -5,5 +5,5 @@
 // file "LICENCE" distributed with Cforall.
 //
-// AdjustExprType.cc -- 
+// AdjustExprType.cc --
 //
 // Author           : Richard C. Bilson
@@ -12,5 +12,5 @@
 // Last Modified On : Wed Mar  2 17:34:53 2016
 // Update Count     : 4
-// 
+//
 
 #include "typeops.h"
@@ -65,5 +65,6 @@
 
 	Type *AdjustExprType::mutate( ArrayType *arrayType ) {
-		PointerType *pointerType = new PointerType( arrayType->get_qualifiers(), arrayType->get_base()->clone() );
+		// need to recursively mutate the base type in order for multi-dimensional arrays to work.
+		PointerType *pointerType = new PointerType( arrayType->get_qualifiers(), arrayType->get_base()->clone()->acceptMutator( *this ) );
 		delete arrayType;
 		return pointerType;
