         guard let unwrappedValue = value else {
             throw ProtoDecoder.Error.mapEntryWithoutValue(key: key)
         }
-        return (unwrappedKey, unwrappedValue)
+
+        dictionary[unwrappedKey] = unwrappedValue
     }
 
     // MARK: - Private Methods - Unknown Fields

        }
    }

    private func decode<K, V>(decodeKey: () throws -> K, decodeValue: () throws -> V) throws -> (K, V) {
        var key: K?
        var value: V?


     If the given value was not known at the time of generating these protos then nothing will be added to the map.
     */
    public func decode<V: RawRepresentable>(into dictionary: inout [String: V]) throws where V.RawValue == UInt32 {
        try decode(
            into: &dictionary,
            decodeKey: { try decode(String.self) },
            decodeValue: { try decode(V.self) }
        )
    }

    /**
