     }
 
     private func getStroke(styleParts: [String: String]) -> Stroke? {
-        var color: Color?
-        if let strokeColor = styleParts["stroke"] {
-            if strokeColor == "none" {
-                return .None
-            }
-            var opacity: Double = 1
-            if let fillOpacity = styleParts["fill-opacity"] {
-                opacity = Double(fillOpacity.stringByReplacingOccurrencesOfString(" ", withString: "")) ?? 1
-            }
-            color = createColor(strokeColor.stringByReplacingOccurrencesOfString(" ", withString: ""), opacity: opacity)
-        }
-        if let strokeColor = color {
-            return Stroke(fill: strokeColor,
+        guard let strokeColor = styleParts["stroke"] else {
+            return .None
+        }
+        if strokeColor == "none" {
+            return .None
+        }
+        var opacity: Double = 1
+        if let strokeOpacity = styleParts["stroke-opacity"] {
+            opacity = Double(strokeOpacity.stringByReplacingOccurrencesOfString(" ", withString: "")) ?? 1
+        }
+        var fill: Fill?
+        if strokeColor.hasPrefix("url") {
+            let index = strokeColor.startIndex.advancedBy(4)
+            let id = strokeColor.substringFromIndex(index)
+                .stringByReplacingOccurrencesOfString("(", withString: "")
+                .stringByReplacingOccurrencesOfString(")", withString: "")
+                .stringByReplacingOccurrencesOfString("#", withString: "")
+            fill = defFills[id]
+        } else {
+            fill = createColor(strokeColor.stringByReplacingOccurrencesOfString(" ", withString: ""), opacity: opacity)
+        }
+        if let strokeFill = fill {
+            return Stroke(fill: strokeFill,
                 width: getStrokeWidth(styleParts),
                 cap: .round,
                 join: .round)

            }

            return PathSegment(type: command.absolute ? .C : .c, data: [x1, y1, x2, y2, x, y])

        case .ClosePath:
            return PathSegment(type: .Z)
        default:

        case LineV
        case LineH
        case CurveTo
        case SmoothCurveTo
        case ClosePath
        case None
    }
