diff --git a/bin/test_hom.py b/bin/test_hom.py
index 3f2cd8c7731a15cee5019331ac81bfeca53752c3..02b662d189cd3ab454b2b89df4735cff96466f6f 100644
--- a/bin/test_hom.py
+++ b/bin/test_hom.py
@@ -12,12 +12,16 @@ fsig noise l1 amp 1 0 1
 
 qhd qhd180 180 n2 n3
 qhd qhd0 0 n2 n3
+qhd qhd2 0 n2 n3
+scale meter qhd180
+scale meter qhd0
+scale meter qhd2
+scale 2 qhd0
 
 xaxis l1 phase lin 0 360 360
 """)
 
 out = kat.run()
 
-#out.plot()
+out.plot()
 
-print kat.qhd180
diff --git a/pykat/__init__.py b/pykat/__init__.py
index 01a75cd6f05d0f3d4b0ce043f68a3a20ec2c698f..3008f8b854cdea48a960f2090521cf3f60f5616e 100644
--- a/pykat/__init__.py
+++ b/pykat/__init__.py
@@ -1,4 +1,4 @@
-__version__ = "0.6.1"
+__version__ = "0.6.2"
 
 # This flag is used to switch on the gui features in pkat at import time
 USE_GUI = False
diff --git a/pykat/detectors.py b/pykat/detectors.py
index 9ceb2e4ab5987b81d5070ab948d68d79512b6ff9..e58e16fa46985ac3d6eccadee4ec8bdf5f08ffbc 100644
--- a/pykat/detectors.py
+++ b/pykat/detectors.py
@@ -38,7 +38,7 @@ class BaseDetector(object) :
         self.tag = None
         self._params = []
         self._mask = {}
-        self.__scale = None
+        self.__scale = []
         self.__removed = False
         
         self._alternate_beam = []
@@ -110,7 +110,8 @@ class BaseDetector(object) :
     def scale(self): return self.__scale
     @scale.setter
     def scale(self, value):
-        self.__scale = value
+        if value not in self.__scale:
+            self.__scale = value
     
     @property
     def name(self): return self.__name        
@@ -142,6 +143,16 @@ class BaseDetector(object) :
             else:
                 raise pkex.BasePyKatException("There is no node called " + value + " in the kat object this detector is attached to.")
     
+    def _getScaleCmds(self, rtn):
+        if self.scale != None:
+            if isinstance(self.scale, str):
+                rtn.append("scale {1} {0}".format(self.name, self.scale))
+            elif isinstance(self.scale, (list, tuple)):
+                for s in self.scale:
+                    rtn.append("scale {1} {0}".format(self.name, s))
+            else:
+                raise pkex.BasePyKatException("Scale command should either be a list of scales or a single string.")
+                
 class Detector1(BaseDetector):
     """
     A detector that attaches to one node.
@@ -524,9 +535,8 @@ class pd(Detector1):
             
             rtn.append("pd{0}{1} {2}{3} {4}{5}".format(senstype, self.num_demods, self.name, fphi_str, self.node.name, alt_str))
 
-            if self.scale != None:
-                rtn.append("scale {1} {0}".format(self.name, self.scale))
-
+            self._getScaleCmds(rtn)
+            
             if self.pdtype != None:
                 rtn.append("pdtype {0} {1}".format(self.name, self.pdtype))
                 
@@ -631,8 +641,7 @@ class qnoised(pd):
                 
             rtn.append("qnoised{5} {0} {1} {2} {3}{4}".format(self.name, self.num_demods, fphi_str, self.node.name, alt_str, senstype))
 
-            if self.scale != None:
-                rtn.append("scale {1} {0}".format(self.name, self.scale))
+            self._getScaleCmds(rtn)
                 
             for p in self._params:
                 rtn.extend(p.getFinesseText())
@@ -724,8 +733,7 @@ class qshot(pd):
                 
             rtn.append("qshot{5} {0} {1} {2} {3}{4}".format(self.name, self.num_demods, fphi_str, self.node.name, alt_str,senstype))
 
-            if self.scale != None:
-                rtn.append("scale {1} {0}".format(self.name, self.scale))
+            self._getScaleCmds(rtn)
                 
             for p in self._params:
                 rtn.extend(p.getFinesseText())
@@ -761,8 +769,7 @@ def xd(Detector1):
         if self.enabled:
             rtn.append("xd {0} {1} {2}".format(self.name, self.component, self.motion))
 
-            if self.scale != None:
-                rtn.append("scale {1} {0}".format(self.name, self.scale))
+            self._getScaleCmds(rtn)
                 
             for p in self._params:
                 rtn.extend(p.getFinesseText())
@@ -803,8 +810,7 @@ class hd(Detector2):
             
             rtn.append("hd {0} {1} {2} {3}".format(self.name, self.phase, n1, n2))
 
-            if self.scale != None:
-                rtn.append("scale {1} {0}".format(self.name, self.scale))
+            self._getScaleCmds(rtn)
                 
             for p in self._params:
                 rtn.extend(p.getFinesseText())
@@ -858,8 +864,7 @@ class qhd(Detector2):
             
             rtn.append("qhd{4} {0} {1} {2} {3}".format(self.name, self.phase, n1, n2, self.sensitivity))
 
-            if self.scale != None:
-                rtn.append("scale {1} {0}".format(self.name, self.scale))
+            self._getScaleCmds(rtn)
                 
             for p in self._params:
                 rtn.extend(p.getFinesseText())
diff --git a/pykat/finesse.py b/pykat/finesse.py
index b8c1aeef4486b7d80a73fad7c1e6ad3e6c2c3ba5..877eaba83a79fcf820efce2bcf6c43264dce3386 100644
--- a/pykat/finesse.py
+++ b/pykat/finesse.py
@@ -729,10 +729,21 @@ class kat(object):
                 pykat.commands.gauss.parseFinesseText(line, self)
             elif (first == "scale"):
                 v = line.split()
+                accepted = ["PSD","PSD_HF","ASD","ASD_HF","meter", "ampere", "degs"]
+                
                 if len(v) == 3:
                     component_name = v[2]
+                    
+                    if v[1] in accepted:
+                        val = v[1]
+                    else:
+                        try:
+                            val = SIfloat(v[1])
+                        except ex as exception.ValueError:
+                            raise pkex.BasePyKatException("Line `{0}`:\nAccepted scale values are decimal numbers or %s." % (line,str(accepted)))
+                            
                     if component_name in self.__detectors :
-                        self.__detectors[component_name].scale = SIfloat(v[1])
+                        self.__detectors[component_name].scale.append(val)
                     else:
                         raise pkex.BasePyKatException("scale command `{0}` refers to non-existing output".format(component_name))
                 elif len(v) == 2: