Index: /issm/trunk-jpl/src/m/array/MatlabArray.py
===================================================================
--- /issm/trunk-jpl/src/m/array/MatlabArray.py	(revision 24872)
+++ /issm/trunk-jpl/src/m/array/MatlabArray.py	(revision 24873)
@@ -29,7 +29,8 @@
     aout = allequal(ain, aval)
     '''
-    if type(ain) != type(aval):
-        print((allequal.__doc__))
-        raise RuntimeError("ain and aval must be of the same type")
+    # if type(ain) != type(aval):
+    #     print((allequal.__doc__))
+    #     raise RuntimeError("ain and aval must be of the same type")
+    aincopy = ain.copy() # Save copy to return in case ain[n] != aval (we modify ain in order to iterate over its values)
 
     if type(ain) == list:
@@ -40,9 +41,6 @@
     for i in ain:
         if i != aval:
-            if type(ain) == str:
-                return ''
-            else:
-                return []
-    return ain
+            return aincopy
+    return []
 
 
Index: /issm/trunk-jpl/src/m/classes/qmu/normal_uncertain.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/qmu/normal_uncertain.py	(revision 24872)
+++ /issm/trunk-jpl/src/m/classes/qmu/normal_uncertain.py	(revision 24873)
@@ -142,7 +142,4 @@
     @staticmethod
     def prop_mean(nuv): #{{{
-        if type(nuv) not in [list, np.ndarray]:
-            return [nuv.mean]
-
         mean = np.zeros(np.size(nuv))
         for i in range(np.size(nuv)):
@@ -153,6 +150,4 @@
     @staticmethod
     def prop_stddev(nuv): #{{{
-        if type(nuv) not in [list, np.ndarray]:
-            return [nuv.stddev]
         stddev = np.zeros(np.size(nuv))
         for i in range(np.size(nuv)):
@@ -230,10 +225,11 @@
         # collect only the variables of the appropriate class
         # nuv = [struc_class(i, 'normal_uncertain', 'nuv') for i in dvar]
-        fields = fieldnames(dvar)
+        nuv = deepcopy(dvar)
+        fields = fieldnames(nuv)
         for field in fields:
-            if getattr(dvar, field)[0].__class__.__name__ != 'normal_uncertain':
-                delattr(dvar, field)
-        if len(dvar) > 0:
-            vlist_write(fidi, 'normal_uncertain', 'nuv', dvar)
-    #}}}
-
+            if getattr(nuv, field)[0].__class__.__name__ != 'normal_uncertain':
+                delattr(nuv, field)
+        if len(nuv) > 0:
+            vlist_write(fidi, 'normal_uncertain', 'nuv', nuv)
+    #}}}
+
Index: /issm/trunk-jpl/src/m/classes/qmu/response_function.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/qmu/response_function.py	(revision 24872)
+++ /issm/trunk-jpl/src/m/classes/qmu/response_function.py	(revision 24873)
@@ -204,10 +204,11 @@
         # collect only the responses of the appropriate class
         #rf = [struc_class(vars(dresp)[i][j], 'response_function', 'rf') for i in fieldnames(dresp) for j in range(len(vars(dresp)[i]))]
-        fields = fieldnames(dresp)
+        resp = deepcopy(dresp)
+        fields = fieldnames(resp)
         for field in fields:
-            if getattr(dresp, field)[0].__class__.__name__ != 'response_function':
-                delattr(dresp, field)
-        if len(dresp) > 0:
-            rdesc = rlist_write(fidi, 'response_function', 'rf', dresp, rdesc)
+            if getattr(resp, field)[0].__class__.__name__ != 'response_function':
+                delattr(resp, field)
+        if len(resp) > 0:
+            rdesc = rlist_write(fidi, 'response_function', 'rf', resp, rdesc)
         return rdesc
 
Index: /issm/trunk-jpl/src/m/classes/qmu/uniform_uncertain.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/qmu/uniform_uncertain.py	(revision 24872)
+++ /issm/trunk-jpl/src/m/classes/qmu/uniform_uncertain.py	(revision 24873)
@@ -81,5 +81,5 @@
                 if npart != len(uuv.lower):
                     raise RuntimeError("uniform_uncertain constructor: for the scaled variable %s the lower field is not currently a vector of values for all the partitions described in the partition vector" % uuv.descriptor)
-                    
+
         return [uuv] # Always return a list, so we have something akin to a MATLAB single row matrix
 
@@ -146,7 +146,4 @@
     @staticmethod
     def prop_lower(uuv): #{{{
-        if type(uuv) not in [list, np.ndarray]:
-            return [uuv.lower]
-
         lower = np.zeros(np.size(uuv))
         for i in range(np.size(uuv)):
@@ -160,12 +157,9 @@
     @staticmethod
     def prop_upper(uuv): #{{{
-        if type(uuv) not in [list, np.ndarray]:
-            return [uuv.upper]
-
         upper = np.zeros(np.size(uuv))
         for i in range(np.size(uuv)):
             upper[i] = uuv[i].upper
 
-        upper = allequal(upper, np.Inf)
+        #upper = allequal(upper, np.Inf)
 
         return upper
@@ -240,9 +234,10 @@
         # # collect only the variables of the appropriate class
         # uuv = [struc_class(i, 'uniform_uncertain', 'uuv') for i in dvar]
-        fields = fieldnames(dvar)
+        uuv = deepcopy(dvar)
+        fields = fieldnames(uuv)
         for field in fields:
-            if getattr(dvar, field)[0].__class__.__name__ != 'uniform_uncertain':
-                delattr(dvar, field)
-        if len(dvar) > 0:
-            vlist_write(fidi, 'uniform_uncertain', 'uuv', dvar)
-    #}}}
+            if getattr(uuv, field)[0].__class__.__name__ != 'uniform_uncertain':
+                delattr(uuv, field)
+        if len(uuv) > 0:
+            vlist_write(fidi, 'uniform_uncertain', 'uuv', uuv)
+    #}}}
Index: /issm/trunk-jpl/src/m/qmu/expandresponses.py
===================================================================
--- /issm/trunk-jpl/src/m/qmu/expandresponses.py	(revision 24872)
+++ /issm/trunk-jpl/src/m/qmu/expandresponses.py	(revision 24873)
@@ -12,5 +12,5 @@
 
     for k in fnames:
-        v = eval('responses.{}'.format(k))
+        v = getattr(responses, k)
         exec('dresp.{} = type(v)()'.format(k))
         for j in range(len(v)):
Index: /issm/trunk-jpl/src/m/qmu/importancefactors.m
===================================================================
--- /issm/trunk-jpl/src/m/qmu/importancefactors.m	(revision 24872)
+++ /issm/trunk-jpl/src/m/qmu/importancefactors.m	(revision 24873)
@@ -8,4 +8,5 @@
 %   Example: factors=importancefactors(md,'drag','max_vel');
 %
+
 variablenamelength=length(variablename);
 
Index: /issm/trunk-jpl/src/m/qmu/importancefactors.py
===================================================================
--- /issm/trunk-jpl/src/m/qmu/importancefactors.py	(revision 24872)
+++ /issm/trunk-jpl/src/m/qmu/importancefactors.py	(revision 24873)
@@ -10,5 +10,6 @@
 
     Example: factors = importancefactors(md, 'drag', 'max_vel')
-    '''
+'''
+
     variablenamelength = len(variablename)
 
