diff --git a/source/Commands/CommandObjectFrame.cpp b/source/Commands/CommandObjectFrame.cpp
index aaaee06..57286ac 100644
--- a/source/Commands/CommandObjectFrame.cpp
+++ b/source/Commands/CommandObjectFrame.cpp
@@ -69,7 +69,7 @@
     Execute (Args& command,
              CommandReturnObject &result)
     {
-        ExecutionContext exe_ctx(m_interpreter.GetDebugger().GetExecutionContext());
+        ExecutionContext exe_ctx(m_interpreter.GetExecutionContext());
         if (exe_ctx.frame)
         {
             exe_ctx.frame->DumpUsingSettingsFormat (&result.GetOutputStream());
@@ -188,7 +188,7 @@
     Execute (Args& command,
              CommandReturnObject &result)
     {
-        ExecutionContext exe_ctx (m_interpreter.GetDebugger().GetExecutionContext());
+        ExecutionContext exe_ctx (m_interpreter.GetExecutionContext());
         if (exe_ctx.thread)
         {
             const uint32_t num_frames = exe_ctx.thread->GetStackFrameCount();
@@ -445,7 +445,7 @@
         CommandReturnObject &result
     )
     {
-        ExecutionContext exe_ctx(m_interpreter.GetDebugger().GetExecutionContext());
+        ExecutionContext exe_ctx(m_interpreter.GetExecutionContext());
         if (exe_ctx.frame == NULL)
         {
             result.AppendError ("you must be stopped in a valid stack frame to view frame variables.");
