diff --git a/ghc/compiler/parser/printtree.c b/ghc/compiler/parser/printtree.c
index 2d840a46b49f289f2678a2323587b4f1af94526a..b72b9778cfe77792df072544b1a4808b0a7dbd79 100644
--- a/ghc/compiler/parser/printtree.c
+++ b/ghc/compiler/parser/printtree.c
@@ -502,6 +502,7 @@ prbind(b)
 			  /* pid(gibindfile(b)); */
 			  pid(gibindimod(b));
 			  printf("#%lu\t",gibindqual(b)); /* 1 -- qualified */
+			  printf("#%lu\t",gibindsource(b)); /* 1 -- from source */
 			  pmaybe(pid, gibindas(b));
 			  pmaybe(pconstr, gibindspec(b));
 			  /* plist(pentid,giebindexp(b)); ??? */
@@ -692,7 +693,7 @@ ppbinding(p)
 			  break;
 	case pgdexp	: 
 			  PUTTAG('&');
-			  ptree(gpguard(p));
+			  plist(ptree, gpguard(p)); /* Experimental: pattern guards */
 			  ptree(gpexp(p));
 			  break;
 	default	        :