using min or max on a masked array where the mask is a scalar True or False Fails

>>> import numpy as np
>>> a = np.array([np.arange(5)])
>>> a
array([[0, 1, 2, 3, 4]])
>>> m1 = np.ma.masked_values(a,1)
>>> m5 = np.ma.masked_values(a,5)
>>> m1
masked_array(data =
 [[0 -- 2 3 4]],
             mask =
 [[False  True False False False]],
       fill_value = 1)

>>> m5
masked_array(data =
 [[0 1 2 3 4]],
             mask =
 False,
       fill_value = 5)

>>> a.min(axis=0)
array([0, 1, 2, 3, 4])
>>> m5.min(axis=0)
masked_array(data = [0 1 2 3 4],
             mask = False,
       fill_value = 999999)

>>> m1.min(axis=0)
masked_array(data = [0 -- 2 3 4],
             mask = [False  True False False False],
       fill_value = 999999)

>>> a.min(axis=1)
array([0])
>>> m1.min(axis=1)
masked_array(data = [0],
             mask = [False],
       fill_value = 999999)
>>> m5.min(axis=1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Python/2.6/site-packages/numpy/ma/core.py", line 5020, in min
    newmask = _mask.all(axis=axis)
ValueError: axis(=1) out of bounds
### workaround
>>> m5.mask = np.ma.getmaskarray(m5)
>>> m1.min(axis=1)
masked_array(data = [0],
             mask = [False],
       fill_value = 999999)
# replace 
#       newmask = _mask.all(axis=axis)
# with
        try:
                newmask = _mask.all(axis=axis)
        except:
                newmask = _mask