Hey cwmine. I think it's ok to have both of these pull requests here, now that we understand what they do. We just need to grab your branch and fix a few tests that will fail because the output of an unflattenable src now returns the src.

If you'd like, you can make these fixes. Otherwise, I'll just do it tomorrow and submit a new pull.

======================================================================
FAIL: test_flatten (openmdao.main.test.test_case.CaseTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/htaft/OpenMDAO-Framework/openmdao.main/src/openmdao/main/test/test_case.py", line 175, in test_flatten
    ('comp1.vt.v2',2.)
AssertionError: Items in the first set but not the second:
('comp1.vt.vt2.data', '{None}')
('comp1.vt.data', '{None}')
('comp1.vt.vt2.vt3.data', '{None}')

======================================================================
FAIL: test_flatten (openmdao.main.test.test_vartree.NamespaceTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/htaft/OpenMDAO-Framework/openmdao.main/src/openmdao/main/test/test_vartree.py", line 376, in test_flatten
    ('foo.v1', 1.), ('foo.v2', 2.)]))
AssertionError: Items in the first set but not the second:
('foo.data', '{None}')
('foo.vt2.vt3.data', '{None}')
('foo.vt2.data', '{None}')

======================================================================
FAIL: test_flatten (openmdao.lib.casehandlers.test.test_csvcase.CSVCaseRecorderTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/htaft/OpenMDAO-Framework/openmdao.lib/src/openmdao/lib/casehandlers/test/test_csvcase.py", line 383, in test_flatten
    self.assertEqual(lines[index+i], expected[i])
AssertionError: '      comp1.vt.data: None' != '      comp1.vt.v1: 1.0'