Index: /issm/trunk-jpl/src/m/solvers/issmsolver.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/issmsolver.m	(revision 14727)
+++ /issm/trunk-jpl/src/m/solvers/issmsolver.m	(revision 14728)
@@ -12,3 +12,3 @@
 issmoptions.toolkit='issm';
 issmoptions.mat_type=getfieldvalue(options,'mat_type','mpidense');
-issmoptions.vec_type=getfieldvalue(options,'mat_type','mpi');
+issmoptions.vec_type=getfieldvalue(options,'vec_type','mpi');
Index: /issm/trunk-jpl/src/m/solvers/issmsolver.py
===================================================================
--- /issm/trunk-jpl/src/m/solvers/issmsolver.py	(revision 14728)
+++ /issm/trunk-jpl/src/m/solvers/issmsolver.py	(revision 14728)
@@ -0,0 +1,31 @@
+#module imports {{{
+from pairoptions import *
+from petscversion  import *
+#}}}
+def asmoptions(*args):
+	#ISSMSOLVE - return issm solver options
+	#
+	#   Usage:
+	#      options=issmsolver;
+	
+	#retrieve options provided in varargin
+	arguments=pairoptions(*args) 
+	
+	options=[['toolkit','issm'],['mat_type','mpidense'],['vec_type','mpi']];
+
+	#now, go through our arguments, and write over default options.
+	for i in range(len(arguments.list)):
+		arg1=arguments.list[i][0]
+		arg2=arguments.list[i][1]
+		found=0;
+		for j in range(len(options)):
+			joption=options[j][0]
+			if joption==arg1:
+				joption[1]=arg2;
+				options[j]=joption;
+				found=1;
+				break
+		if not found:
+			#this option did not exist, add it: 
+			options.append([arg1,arg2])
+	return options
