diff --git a/pykat/components.py b/pykat/components.py
index c1ee2098354e07f9077174b6e236b154ac134fae..8d4f3c8da16e1e39528a89af4bfa1703b132f601 100644
--- a/pykat/components.py
+++ b/pykat/components.py
@@ -901,7 +901,7 @@ class grating(Component):
         return self._svgItem
 
 class isolator(Component):
-    def __init__(self, name, node1, node2, S = 0, node3="dump", option=0):
+    def __init__(self, name, node1, node2, S = 0, node3="dump", option = 0, L = 0):
         Component.__init__(self, name)
         
         self._requested_node_names.append(node1)
@@ -911,11 +911,18 @@ class isolator(Component):
         self._option = option
         
         self.__S = Param("S",self,SIfloat(S))
+        self.__L = Param("L",self,SIfloat(L))
+
         
     @property
     def S(self): return self.__S
     @S.setter
     def S(self, value): self.__S.value = SIfloat(value)
+
+    @property
+    def L(self): return self.__L
+    @L.setter
+    def L(self, value): self.__L.value = SIfloat(value)
     
     @staticmethod
     def parseFinesseText(text):
@@ -934,7 +941,15 @@ class isolator(Component):
         if len(values) == 4:
             return isolator(values[0], values[2], values[3], values[1], option=option)
         elif len(values) == 5:
-            return isolator(values[0], values[2], values[3], node3=values[4], S=values[1], option=option)
+            # Checking if loss is specified
+            if values[2].isnumeric():
+                return isolator(values[0], values[3], values[4], values[1],
+                                L=values[2], option=option)
+            else:
+                return isolator(values[0], values[2], values[3], node3=values[4],
+                                S=values[1], option=option)
+        elif len(values) == 6:
+             return isolator(values[0], values[3], values[4], values[1], values[5], option, values[2])
         else:
             raise pkex.BasePyKatException("Isolator Finesse code format incorrect '{0}'".format(text))
         
@@ -944,11 +959,12 @@ class isolator(Component):
         elif self._option == 1:
             cmd = "isol*"
             
-        rtn = ['{cmd} {0} {1} {2} {3} {4}'.format(self.name, self.S.value, self.nodes[0].name, self.nodes[1].name, self.nodes[2].name, cmd=cmd)]
+        rtn = ['{cmd} {0} {1} {2} {3} {4} {5}'.format(self.name, self.S.value, self.L.value, self.nodes[0].name, self.nodes[1].name, self.nodes[2].name, cmd=cmd)]
         
         for p in self._params:
             rtn.extend(p.getFinesseText())
-            
+
+        print(rtn)
         return rtn
     
     def getOptivisComponent(self):