diff --git a/cabal-install/Distribution/Client/ProjectPlanOutput.hs b/cabal-install/Distribution/Client/ProjectPlanOutput.hs
index d51f158b713e7a34e5fe20c2d9045224c87da083..2b6f31d50de33394ea1527f9d7f1361143a64929 100644
--- a/cabal-install/Distribution/Client/ProjectPlanOutput.hs
+++ b/cabal-install/Distribution/Client/ProjectPlanOutput.hs
@@ -73,20 +73,23 @@ encodePlanAsJson elaboratedInstallPlan _elaboratedSharedConfig =
       J.object $
         [ "type"       J..= J.String "configured"
         , "id"         J..= (jdisplay . installedUnitId) elab
-        , "depends"    J..= map (jdisplay . confInstId) (elabLibDependencies elab)
         , "flags"      J..= J.object [ fn J..= v
                                      | (PD.FlagName fn,v) <-
                                             elabFlagAssignment elab ]
         ] ++
         case elabPkgOrComp elab of
-            ElabPackage pkg ->
-                let components = J.object
-                      [ comp2str c J..= J.object
-                        [ "depends" J..= map (jdisplay . confInstId) v ]
-                      -- NB: does NOT contain non-lib dependencies
-                      | (c,v) <- ComponentDeps.toList (pkgLibDependencies pkg) ]
-                in ["components" J..= components ]
-            ElabComponent _ -> []
+          ElabPackage pkg ->
+            let components = J.object $
+                  [ comp2str c J..= J.object
+                    [ "depends" J..= map (jdisplay . confInstId) v ]
+                  | (c,v) <- ComponentDeps.toList (pkgLibDependencies pkg) ] ++
+                  [ comp2str c J..= J.object
+                    [ "exe-depends" J..= map (jdisplay . confInstId) v ]
+                  | (c,v) <- ComponentDeps.toList (pkgExeDependencies pkg) ]
+            in ["components" J..= components]
+          ElabComponent _ ->
+            ["depends"     J..= map (jdisplay . confInstId) (elabLibDependencies elab)
+            ,"exe-depends" J..= map jdisplay (elabExeDependencies elab)]
 
     -- TODO: maybe move this helper to "ComponentDeps" module?
     --       Or maybe define a 'Text' instance?