diff --git a/source/Target/StackFrame.cpp b/source/Target/StackFrame.cpp
index 4b462ee..780a263 100644
--- a/source/Target/StackFrame.cpp
+++ b/source/Target/StackFrame.cpp
@@ -642,7 +642,11 @@
                             if (!child_valobj_sp)
                             {
                                 if (no_synth_child == false)
-                                    child_valobj_sp = valobj_sp->GetSyntheticValue(eUseSyntheticFilter)->GetChildMemberWithName (child_name, true);
+                                {
+                                    child_valobj_sp = valobj_sp->GetSyntheticValue();
+                                    if (child_valobj_sp)
+                                        child_valobj_sp = child_valobj_sp->GetChildMemberWithName (child_name, true);
+                                }
                                 
                                 if (no_synth_child || !child_valobj_sp)
                                 {
@@ -742,7 +746,7 @@
                                     else if (is_objc_pointer)
                                     {                                            
                                         // dereferencing ObjC variables is not valid.. so let's try and recur to synthetic children
-                                        ValueObjectSP synthetic = valobj_sp->GetSyntheticValue(eUseSyntheticFilter);
+                                        ValueObjectSP synthetic = valobj_sp->GetSyntheticValue();
                                         if (synthetic.get() == NULL /* no synthetic */
                                             || synthetic == valobj_sp) /* synthetic is the same as the original object */
                                         {
@@ -814,7 +818,7 @@
                                 }
                                 else
                                 {
-                                    ValueObjectSP synthetic = valobj_sp->GetSyntheticValue(eUseSyntheticFilter);
+                                    ValueObjectSP synthetic = valobj_sp->GetSyntheticValue();
                                     if (no_synth_child /* synthetic is forbidden */ ||
                                         synthetic.get() == NULL /* no synthetic */
                                         || synthetic == valobj_sp) /* synthetic is the same as the original object */
