diff --git a/pykat/finesse.py b/pykat/finesse.py
index d9694e1bcb7fc52c07dbf21dc27ff8a4850ec957..efc590644ba5c1a4bfdd8709c9266866711b7302 100644
--- a/pykat/finesse.py
+++ b/pykat/finesse.py
@@ -288,7 +288,8 @@ class katRun(object):
         
     def plot(self, detectors=None, filename=None, show=True,
                    yaxis=None, legend=True, loc=0, title=None, styles=None,
-                   ylabel=None, y2label=None, xlabel=None, x2label=None):
+                   ylabel=None, y2label=None, xlabel=None, x2label=None,
+                   xlim=None, x2lim=None, ylim=None, y2lim=None):
         """
         This will generate a plot for the output data of this particular pykat run.
         It will attempt to generate a plot that shows all the various traces and plots
@@ -405,13 +406,24 @@ class katRun(object):
             if ylabel is None:
                 if "abs" in kat.yaxis: ylabel = "Absolute [au]"
                 if "re" in kat.yaxis:  ylabel = "Real part [au]"
-                
+                    
             if y2label is None:
                 if "deg" in kat.yaxis: y2label = "Phase [deg]"
                 if "im" in kat.yaxis:  y2label = "Imaginary part [au]"
+                    
+            if xlim is None:
+                xlim = (self.x.min(), self.x.max())
+                
+            if x2lim is None:
+                 x2lim = (self.x.min(), self.x.max())
+                 
         else:
             if ylabel is None:
                 ylabel = "[au]"
+                
+            if xlim is None:
+                xlim = (self.x.min(), self.x.max())
+            
         
         if xlabel is None:
             xlabel = self.xlabel
@@ -424,16 +436,22 @@ class katRun(object):
         if dual_plot:
             ax = pyplot.subplot(2,1,1)
             pyplot.xlabel(xlabel, fontsize=font_label_size)
-            pyplot.xlim(self.x.min(), self.x.max())
             pyplot.ylabel(ylabel, fontsize=font_label_size)
-            
+            pyplot.xlim(xlim[0], xlim[1])
+            if ylim is not None:
+                pyplot.ylim(ylim[0],ylim[1])
+
             if title is not None:
                 pyplot.title(title, fontsize=font_label_size)
     
             pyplot.subplot(2,1,2)
             pyplot.xlabel(x2label, fontsize=font_label_size)
-            pyplot.xlim(self.x.min(), self.x.max())
             pyplot.ylabel(y2label, fontsize=font_label_size)
+        
+            pyplot.xlim(x2lim[0], x2lim[1])
+            if y2lim is not None:
+                pyplot.ylim(y2lim[0],y2lim[1])
+            
         else:
             pyplot.xlabel(xlabel, fontsize=font_label_size)
             pyplot.ylabel(ylabel)
@@ -441,6 +459,8 @@ class katRun(object):
             
             if title is not None:
                 pyplot.title(title, fontsize=font_label_size)
+            if ylim is not None:
+                pyplot.ylim(ylim[0],ylim[1])
     
         pyplot.tight_layout()