diff --git a/CHANGES.md b/CHANGES.md
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,9 @@
+1.11.1
+======
+* [!740](https://gitlab.com/morley-framework/morley/-/merge_requests/740)
+  Fixed `morley print` to correctly render `PUSH` instructions that
+  previously caused contracts to be misaligned and rejected by `tezos-client`.
+
 1.11.0
 ======
 * [!731](https://gitlab.com/morley-framework/morley/-/merge_requests/731)
diff --git a/morley.cabal b/morley.cabal
--- a/morley.cabal
+++ b/morley.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           morley
-version:        1.11.0
+version:        1.11.1
 synopsis:       Developer tools for the Michelson Language
 description:    A library to make writing smart contracts in Michelson — the smart contract language of the Tezos blockchain — pleasant and effective.
 category:       Language
diff --git a/src/Michelson/Text.hs b/src/Michelson/Text.hs
--- a/src/Michelson/Text.hs
+++ b/src/Michelson/Text.hs
@@ -9,7 +9,7 @@
 --
 -- When writting a Michelson contract, you can only mention characters with
 -- codes from @[32 .. 126]@ range in string literals. Same restriction applies
--- to string literals passed to @alphanet.sh@.
+-- to string literals passed to @tezos-client@.
 --
 -- However, Michelson allows some control sequences: @"\n"@. You have to write
 -- it exactly in this form, and internally it will be transformed to line feed
diff --git a/src/Michelson/Untyped/Instr.hs b/src/Michelson/Untyped/Instr.hs
--- a/src/Michelson/Untyped/Instr.hs
+++ b/src/Michelson/Untyped/Instr.hs
@@ -207,7 +207,21 @@
     SWAP                    -> "SWAP"
     DIG n                   -> "DIG" <+> text (show n)
     DUG n                   -> "DUG" <+> text (show n)
-    PUSH va t v             -> "PUSH" <+> renderAnnot va <+> renderTy t <+> renderDoc needsParens v
+    PUSH va t v             ->
+      let renderConsecutively =
+            "PUSH" <+> renderAnnot va <+> renderTy t <+> renderDoc needsParens v
+          renderAligned = "PUSH" <+> renderAnnot va <$$> (spaces 2 <> renderTy t)
+                                <$$> spaces 2 <> nest 3 (renderDoc needsParens v)
+      in case v of
+        ValueNil      -> renderConsecutively
+        ValueInt{}    -> renderConsecutively
+        ValueString{} -> renderConsecutively
+        ValueBytes{}  -> renderConsecutively
+        ValueUnit     -> renderConsecutively
+        ValueTrue     -> renderConsecutively
+        ValueFalse    -> renderConsecutively
+        ValueNone     -> renderConsecutively
+        _             -> renderAligned
     SOME ta va              -> "SOME" <+> renderAnnots [ta] [] [va]
     NONE ta va t            -> "NONE" <+> renderAnnots [ta] [] [va] <+> renderTy t
     UNIT ta va              -> "UNIT" <+> renderAnnots [ta] [] [va]
diff --git a/src/Michelson/Untyped/Value.hs b/src/Michelson/Untyped/Value.hs
--- a/src/Michelson/Untyped/Value.hs
+++ b/src/Michelson/Untyped/Value.hs
@@ -83,7 +83,7 @@
       ValueNone      -> "None"
       ValueSeq xs    -> renderValuesList (renderDoc doesntNeedParens) xs
       ValueMap xs    -> renderValuesList renderElt xs
-      ValueLambda xs -> renderOps True xs
+      ValueLambda xs -> renderOps False xs
 
 renderElt :: RenderDoc op => Elt op -> Doc
 renderElt (Elt k v) =
diff --git a/src/Tezos/Core.hs b/src/Tezos/Core.hs
--- a/src/Tezos/Core.hs
+++ b/src/Tezos/Core.hs
@@ -326,7 +326,8 @@
 dummyChainId :: ChainId
 dummyChainId = ChainIdUnsafe "\0\0\0\0"
 
--- | Pretty print 'ChainId' as it is displayed e.g. in @./babylonnet.sh head@ call.
+-- | Pretty print 'ChainId' as it is displayed e.g. in
+-- @tezos-client rpc get /chains/main/chain_id@ call.
 --
 -- Example of produced value: "NetXUdfLh6Gm88t".
 formatChainId :: ChainId -> Text
