diff --git a/pykat/detectors.py b/pykat/detectors.py
index 35c5f3bccf5476a925584b39e564bfc987afc878..eee8f05a0542740ff4848c6ac006b6c359ccf300 100644
--- a/pykat/detectors.py
+++ b/pykat/detectors.py
@@ -81,13 +81,12 @@ class Detector(object) :
     
 class pd(Detector):
 
-    def __init__(self, name, num_demods, node_name, senstype=None, alternate_beam=False, pdtype=None, **kwargs):
+    def __init__(self, name, num_demods, node_name, senstype=None, alternate_beam=False, **kwargs):
         Detector.__init__(self, name, node_name)
         
         self.__num_demods = num_demods
         self.__senstype = senstype
         self.__alternate_beam = alternate_beam
-        self.__pdtype = pdtype
         # create the parameters for all 5 demodulations regardless
         # of how many the user specifies. Later we add properties to
         # those which correspond to the number of demodulations
@@ -121,11 +120,6 @@ class pd(Detector):
             
         self.__senstype = value
         
-    @property
-    def pdtype(self): return self.__pdtype
-    @pdtype.setter
-    def pdtype(self, value): self.__pdtype = value
-
     @property
     def num_demods(self): return self.__num_demods
     @num_demods.setter
@@ -201,11 +195,7 @@ class pd(Detector):
                 senstype = ""
                 
             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.pdtype != None:
-                rtn.append("pdtype {1} {0}".format(self.name, self.pdtype))
                 
-
         for p in self._params:
             rtn.extend(p.getFinesseText())
             
@@ -242,8 +232,13 @@ class photodiode(Detector):
 
     @property
     def phi(self): return self.__phi
-        
-    def __init__(self, name, node, senstype="", num_demods=0, demods=[]):        
+
+    @property
+    def pdtype(self): return self.__pdtype
+    @pdtype.setter
+    def pdtype(self, value): self.__pdtype = value
+
+    def __init__(self, name, node, senstype="", num_demods=0, demods=[], pdtype=None):        
         Detector.__init__(self, name, node)
         
         if num_demods>2:
@@ -251,6 +246,8 @@ class photodiode(Detector):
             
         self.num_demods = num_demods
         self.senstype = senstype
+        self.__pdtype = pdtype
+
 
         # every second element into f (starting at 1)
         self.__f = self.__F(demods[::2])
@@ -315,6 +312,9 @@ class photodiode(Detector):
             if self.scale != None and self.scale !='':
                 rtn.append("scale {1} {0}".format(self.name, self.scale))
 
+            if self.pdtype != None:
+                rtn.append("pdtype {0} {1}".format(self.name, self.pdtype))
+
             if self.noplot:
                 rtn.append("noplot {0}".format(self.name))
             
diff --git a/pykat/finesse.py b/pykat/finesse.py
index c982a2c7e9f2e0993a882a263c7623b722e25f6a..af93c31422eba5ed1713f61929e74e02a90dd67f 100644
--- a/pykat/finesse.py
+++ b/pykat/finesse.py
@@ -350,7 +350,7 @@ class kat(object):
                 if len(v) == 3:
                     component_name = v[1]
                     if component_name in self.__detectors :
-                        self.__detectors[component_name].type = v[2]
+                        self.__detectors[component_name].pdtype = v[2]
                     else:
                         raise pkex.BasePyKatException("pdtype command `{0}` refers to non-existing detector".format(text))
                 else: