diff --git a/wrappers/swift/genwrapper.py b/wrappers/swift/genwrapper.py
index d8c563aa78362295c9bc076849067595a591258b..11a0280bb0f8bcb35740d4a1a484314bdeb1540c 100644
--- a/wrappers/swift/genwrapper.py
+++ b/wrappers/swift/genwrapper.py
@@ -129,10 +129,10 @@ class SwiftTranslator:
                     methodDict['impl']['c_args'] += argName + "?.cPtr" if arg.maybenil else argName + ".cPtr"
                 elif isinstance(arg.type, AbsApi.EnumType):
                     argType = arg.type.translate(self.langTranslator, namespace=namespace)
-                    if methodDict['impl']['type'] == "Int":
-                        methodDict['impl']['c_args'] += arg.type.name + "(rawValue: CInt(" + argName + ".rawValue))"
-                    else:
+                    if arg.type.desc.isUnsigned:
                         methodDict['impl']['c_args'] += arg.type.name + "(rawValue: CUnsignedInt(" + argName + ".rawValue))"
+                    else:
+                        methodDict['impl']['c_args'] += arg.type.name + "(rawValue: CInt(" + argName + ".rawValue))"
                 elif arg.type.name == "size" or arg.type.name == "time":
                     methodDict['impl']['c_args'] += argName
                 elif argType == "Int":