diff --git a/ghc/compiler/rename/RnSource.lhs b/ghc/compiler/rename/RnSource.lhs
index 9044b873a5ee6e37ffe0a56b6a0577bfec81cd2f..68b817f21b6a58bebb0117e1793cfe48becf2b90 100644
--- a/ghc/compiler/rename/RnSource.lhs
+++ b/ghc/compiler/rename/RnSource.lhs
@@ -886,8 +886,7 @@ forAllErr doc ty tyvar
       (ptext SLIT("In") <+> doc))
 
 ctxtErr explicit_forall doc tyvars constraint ty
-  = sep [ptext SLIT("None of the type variable(s) in the constraint") <+> quotes (pprClassAssertion constraint) <+>
-		   ptext SLIT("does not mention any of"),
+  = sep [ptext SLIT("None of the type variable(s) in the constraint") <+> quotes (pprClassAssertion constraint),
 	 if explicit_forall then
  	   nest 4 (ptext SLIT("is universally quantified (i.e. bound by the forall)"))
 	 else
diff --git a/ghc/compiler/typecheck/TcExpr.lhs b/ghc/compiler/typecheck/TcExpr.lhs
index e2599cf32a84db33d0404b1856628385b8e528ea..a27b3b0638b3cae6dd818f0470e76af85d1393f7 100644
--- a/ghc/compiler/typecheck/TcExpr.lhs
+++ b/ghc/compiler/typecheck/TcExpr.lhs
@@ -159,7 +159,8 @@ tcPolyExpr arg expected_arg_ty
     returnTc ( generalised_arg, free_insts,
 	       arg', sig_tau, lie_arg )
   where
-    sig_msg ty = ptext SLIT("In an expression with expected type:") <+> ppr ty
+    sig_msg ty = sep [ptext SLIT("In an expression with expected type:"),
+		      nest 4 (ppr ty)]
 \end{code}
 
 %************************************************************************
diff --git a/ghc/compiler/types/PprType.lhs b/ghc/compiler/types/PprType.lhs
index 8c293009d38f4afeff5b2d40819aeb81d190741a..6b1b9051289355b9e0c52ed70800a16105856033 100644
--- a/ghc/compiler/types/PprType.lhs
+++ b/ghc/compiler/types/PprType.lhs
@@ -170,7 +170,7 @@ ppr_ty env ctxt_prec ty@(ForAllTy _ _)
 	-- The type checker occasionally prints a type in an error message,
 	-- and it had better come out looking like a user type
        sep [ ptext SLIT("forall") <+> pp_tyvars <> ptext SLIT("."), 
-	     ppr_theta theta <+> ptext SLIT("=>"),
+	     ppr_theta theta,
 	     ppr_ty env tOP_PREC tau
 	   ]
   where		
@@ -179,7 +179,10 @@ ppr_ty env ctxt_prec ty@(ForAllTy _ _)
     
     pp_tyvars = hsep (map (pBndr env LambdaBind) tyvars)
     
-    ppr_theta theta     = parens (hsep (punctuate comma (map ppr_dict theta)))
+    ppr_theta []	= empty
+    ppr_theta theta     = parens (hsep (punctuate comma (map ppr_dict theta))) 
+			  <+> ptext SLIT("=>")
+
     ppr_dict (clas,tys) = ppr clas <+> hsep (map (ppr_ty env tYCON_PREC) tys)