diff --git a/internal/impl/legacy_message.go b/internal/impl/legacy_message.go
index e078045..3d0a921 100644
--- a/internal/impl/legacy_message.go
+++ b/internal/impl/legacy_message.go
@@ -93,7 +93,20 @@
 	if !ok {
 		return aberrantLoadMessageDesc(t, name)
 	}
-	b, idxs := mdV1.Descriptor()
+
+	// If this is a dynamic message type where there isn't a 1-1 mapping between
+	// Go and protobuf types, calling the Descriptor method on the zero value of
+	// the message type isn't likely to work. If it panics, swallow the panic and
+	// continue as if the Descriptor method wasn't present.
+	b, idxs := func() ([]byte, []int) {
+		defer func() {
+			recover()
+		}()
+		return mdV1.Descriptor()
+	}()
+	if b == nil {
+		return aberrantLoadMessageDesc(t, name)
+	}
 
 	md := legacyLoadFileDesc(b).Messages().Get(idxs[0])
 	for _, i := range idxs[1:] {
diff --git a/proto/methods_test.go b/proto/methods_test.go
index cc5dfce..385fcbf 100644
--- a/proto/methods_test.go
+++ b/proto/methods_test.go
@@ -79,3 +79,24 @@
 		t.Fatalf("proto.Unmarshal(selfMarshaler{}): Marshal method not called")
 	}
 }
+
+type descPanicSelfMarshaler struct{}
+
+const descPanicSelfMarshalerBytes = "bytes"
+
+func (m descPanicSelfMarshaler) Reset()                      {}
+func (m descPanicSelfMarshaler) ProtoMessage()               {}
+func (m descPanicSelfMarshaler) Descriptor() ([]byte, []int) { panic("Descriptor method panics") }
+func (m descPanicSelfMarshaler) String() string              { return "descPanicSelfMarshaler{}" }
+func (m descPanicSelfMarshaler) Marshal() ([]byte, error) {
+	return []byte(descPanicSelfMarshalerBytes), nil
+}
+
+func TestSelfMarshalerDescriptorPanics(t *testing.T) {
+	m := descPanicSelfMarshaler{}
+	got, err := proto.Marshal(impl.Export{}.MessageOf(m).Interface())
+	want := []byte(descPanicSelfMarshalerBytes)
+	if err != nil || !bytes.Equal(got, want) {
+		t.Fatalf("proto.Marshal(%v) = %v, %v; want %v, nil", m, got, err, want)
+	}
+}
