Fix marshalAny's handling of indentation.
diff --git a/jsonpb/jsonpb.go b/jsonpb/jsonpb.go
index 40d96c4..6308548 100644
--- a/jsonpb/jsonpb.go
+++ b/jsonpb/jsonpb.go
@@ -313,8 +313,14 @@
 			return err
 		}
 		m.writeSep(out)
-		out.write(`"value":`)
-		if err := m.marshalObject(out, msg, indent, ""); err != nil {
+		if m.Indent != "" {
+			out.write(indent)
+			out.write(m.Indent)
+			out.write(`"value": `)
+		} else {
+			out.write(`"value":`)
+		}
+		if err := m.marshalObject(out, msg, indent+m.Indent, ""); err != nil {
 			return err
 		}
 		if m.Indent != "" {
diff --git a/jsonpb/jsonpb_test.go b/jsonpb/jsonpb_test.go
index bed8b30..659dbed 100644
--- a/jsonpb/jsonpb_test.go
+++ b/jsonpb/jsonpb_test.go
@@ -271,6 +271,41 @@
 		`"[jsonpb.Complex.real_extension]":{"imaginary":0.5772156649},` +
 		`"[jsonpb.name]":"Pi"` +
 		`}`
+
+	anySimple = &pb.KnownTypes{
+		An: &anypb.Any{
+			TypeUrl: "something.example.com/jsonpb.Simple",
+			Value: []byte{
+				// &pb.Simple{OBool:true}
+				1 << 3, 1,
+			},
+		},
+	}
+	anySimpleJSON       = `{"an":{"@type":"something.example.com/jsonpb.Simple","oBool":true}}`
+	anySimplePrettyJSON = `{
+  "an": {
+    "@type": "something.example.com/jsonpb.Simple",
+    "oBool": true
+  }
+}`
+
+	anyWellKnown = &pb.KnownTypes{
+		An: &anypb.Any{
+			TypeUrl: "type.googleapis.com/google.protobuf.Duration",
+			Value: []byte{
+				// &durpb.Duration{Seconds: 1, Nanos: 212000000 }
+				1 << 3, 1, // seconds
+				2 << 3, 0x80, 0xba, 0x8b, 0x65, // nanos
+			},
+		},
+	}
+	anyWellKnownJSON       = `{"an":{"@type":"type.googleapis.com/google.protobuf.Duration","value":"1.212s"}}`
+	anyWellKnownPrettyJSON = `{
+  "an": {
+    "@type": "type.googleapis.com/google.protobuf.Duration",
+    "value": "1.212s"
+  }
+}`
 )
 
 func init() {
@@ -339,22 +374,10 @@
 	{"force orig_name", Marshaler{OrigName: true}, &pb.Simple{OInt32: proto.Int32(4)},
 		`{"o_int32":4}`},
 	{"proto2 extension", marshaler, realNumber, realNumberJSON},
-
-	{"Any with message", marshaler, &pb.KnownTypes{An: &anypb.Any{
-		TypeUrl: "something.example.com/jsonpb.Simple",
-		Value: []byte{
-			// &pb.Simple{OBool:true}
-			1 << 3, 1,
-		},
-	}}, `{"an":{"@type":"something.example.com/jsonpb.Simple","oBool":true}}`},
-	{"Any with WKT", marshaler, &pb.KnownTypes{An: &anypb.Any{
-		TypeUrl: "type.googleapis.com/google.protobuf.Duration",
-		Value: []byte{
-			// &durpb.Duration{Seconds: 1, Nanos: 212000000 }
-			1 << 3, 1, // seconds
-			2 << 3, 0x80, 0xba, 0x8b, 0x65, // nanos
-		},
-	}}, `{"an":{"@type":"type.googleapis.com/google.protobuf.Duration","value":"1.212s"}}`},
+	{"Any with message", marshaler, anySimple, anySimpleJSON},
+	{"Any with message and indent", marshalerAllOptions, anySimple, anySimplePrettyJSON},
+	{"Any with WKT", marshaler, anyWellKnown, anyWellKnownJSON},
+	{"Any with WKT and indent", marshalerAllOptions, anyWellKnown, anyWellKnownPrettyJSON},
 	{"Duration", marshaler, &pb.KnownTypes{Dur: &durpb.Duration{Seconds: 3}}, `{"dur":"3.000s"}`},
 	{"Struct", marshaler, &pb.KnownTypes{St: &stpb.Struct{
 		Fields: map[string]*stpb.Value{