diff --git a/pykat/finesse.py b/pykat/finesse.py
index c6de124f4c2603991970fd3fcd4d8655bb023a40..039216a6f26f83b6bb69878965f25ac23b5327ef 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
@@ -309,7 +310,12 @@ class katRun(object):
             styles:             A dictionary which keys being the detector names and the
                                 value being a colour and linestyle of the sort 'k:'
             ylabel, xlabel:     Text for the first plot x and y labels
-            y2label, x2label:   Text for the second plot x and y labels 
+            y2label, x2label:   Text for the second plot x and y labels
+
+            xlim, ylim:         Limits of x- and y-axes of the first plot. List or tuple
+                                of length 2.
+            x2lim, y2lim:       Limits of x- and y-axes of the second plot. List or tuple
+                                of length 2.
         """
         import matplotlib.pyplot as pyplot
         import pykat.plotting as plt
@@ -405,13 +411,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 +441,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 +464,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()