diff --git a/lldb/source/Commands/CommandObjectExpression.cpp b/lldb/source/Commands/CommandObjectExpression.cpp
index b29c0c7..9026b74 100644
--- a/lldb/source/Commands/CommandObjectExpression.cpp
+++ b/lldb/source/Commands/CommandObjectExpression.cpp
@@ -190,6 +190,27 @@
 CommandObjectExpression::EvaluateExpression (const char *expr, bool bare, Stream &output_stream, Stream &error_stream,
                                              CommandReturnObject *result)
 {
+    if (!m_exe_ctx.process)
+    {
+        error_stream.Printf ("Execution context doesn't contain a process");
+        return false;
+    }
+    
+    if (!m_exe_ctx.process->GetDynamicCheckers())
+    {
+        DynamicCheckerFunctions *dynamic_checkers = new DynamicCheckerFunctions();
+        
+        StreamString install_errors;
+        
+        if (!dynamic_checkers->Install(install_errors, m_exe_ctx))
+        {
+            error_stream.Printf("Couldn't install dynamic checkers into the execution context: %s", install_errors.GetData());
+            return false;
+        }
+        
+        m_exe_ctx.process->SetDynamicCheckers(dynamic_checkers);
+    }
+    
     ClangUserExpression user_expression (expr);
     
     if (!user_expression.Parse (error_stream, m_exe_ctx))
