'Return a Popen() object in our namespace
args: Popen() args, single list, or string
kwargs: Popen() keyword args'

def popen(self, *args, **kwargs):

    defaults = {'stdout': PIPE, 'stderr': PIPE, 'mncmd': ['mnexec', '-da', str(self.pid)]}
    defaults.update(kwargs)
    if (len(args) == 1):
        if isinstance(args[0], list):
            cmd = args[0]
        elif isinstance(args[0], basestring):
            cmd = args[0].split()
        else:
            raise Exception('popen()    requires    a    string    or    list')
    elif (len(args) > 0):
        cmd = list(args)
    cmd = (defaults.pop('mncmd') + cmd)
    if defaults.get('shell', False):
        cmd = '    '.join(cmd)
    popen = self._popen(cmd, **defaults)
    return popen
