diff --git a/src/fit_ellipse_2d.m b/src/fit_ellipse_2d.m
index 26575d6b61e435f7427a7ad7373eaa994a6dbf28..c994b8959d00a00fb0a596cad6f1d961855d7619 100644
--- a/src/fit_ellipse_2d.m
+++ b/src/fit_ellipse_2d.m
@@ -4,6 +4,9 @@ function [ f, Q ] = fit_ellipse_2d( p, method )
     if nargin < 2
         method = 'direct';
     end
+    
+    c = mean( p );
+    p = p - repmat( c, size( p, 1 ), 1 );
 
     switch( lower( method ) )
        
@@ -14,6 +17,8 @@ function [ f, Q ] = fit_ellipse_2d( p, method )
     end
     
     f = quadratic_to_cartesian2( Q );
+    f( 1 ) = f( 1 ) + c( 1 );
+    f( 2 ) = f( 2 ) + c( 2 );
     
     %% Subfunctions