diff --git a/message/message.go b/message/message.go
index a3473bf..48d7663 100644
--- a/message/message.go
+++ b/message/message.go
@@ -156,6 +156,13 @@
 	}
 }
 
+type rawPrinter struct {
+	p *printer
+}
+
+func (p rawPrinter) Render(msg string)     { p.p.WriteString(msg) }
+func (p rawPrinter) Arg(i int) interface{} { return nil }
+
 // Arg implements catmsg.Renderer.
 func (p *printer) Arg(i int) interface{} { // TODO, also return "ok" bool
 	i--
diff --git a/message/message_test.go b/message/message_test.go
index 326f716..e84bd97 100644
--- a/message/message_test.go
+++ b/message/message_test.go
@@ -128,7 +128,7 @@
 			{"und", "hello %-42%%s ", joeAndMary, "hello %Joe %!(EXTRA string=Mary)"},
 		},
 	}, {
-		desc: "number formatting", // work around limitation of fmt
+		desc: "number formatting",
 		cat: []entry{
 			{"und", "files", "%d files left"},
 			{"und", "meters", "%.2f meters"},
@@ -141,6 +141,17 @@
 			{"de-CH", "files", args(1234), "1’234 Dateien übrig"},
 			{"de-CH-u-nu-mong", "files", args(1234), "᠑’᠒᠓᠔ Dateien übrig"},
 		},
+	}, {
+		desc: "substitute translation",
+		cat: []entry{
+			{"en", "google", "Google"},
+			{"en", "sub", "%s"},
+			{"en", "visit", "Lookup: %m."},
+		},
+		test: []test{
+			{"en", "visit", args("google"), "Lookup: Google."},
+			{"en", "visit", args("sub"), "Lookup: %s."},
+		},
 	}}
 
 	for _, tc := range testCases {
diff --git a/message/print.go b/message/print.go
index 777e172..da304cc 100644
--- a/message/print.go
+++ b/message/print.go
@@ -467,6 +467,11 @@
 		p.fmt.fmt_sx(v, udigits)
 	case 'q':
 		p.fmt.fmt_q(v)
+	case 'm':
+		ctx := p.cat.Context(p.tag, rawPrinter{p})
+		if ctx.Execute(v) == catalog.ErrNotFound {
+			p.WriteString(v)
+		}
 	default:
 		p.badVerb(verb)
 	}
