diff --git a/CHANGES b/CHANGES
--- a/CHANGES
+++ b/CHANGES
@@ -50,3 +50,6 @@
 
 0.1.3.1:
 		* fix error in scaling
+
+0.1.3.2:
+		* more fix treatment of 0 in log axes
diff --git a/lib/Graphics/Rendering/Plot/Figure/Plot.hs b/lib/Graphics/Rendering/Plot/Figure/Plot.hs
--- a/lib/Graphics/Rendering/Plot/Figure/Plot.hs
+++ b/lib/Graphics/Rendering/Plot/Figure/Plot.hs
@@ -84,6 +84,8 @@
 --import Data.Packed.Matrix
 import Numeric.Container
 
+import Numeric.LinearAlgebra(eps)
+
 import qualified Data.Array.IArray as A
 
 import Control.Monad.State
@@ -91,6 +93,7 @@
 --import Control.Monad.Supply
 
 import Prelude hiding(min,max)
+import qualified Prelude as Prelude
 
 import Graphics.Rendering.Plot.Types
 import Graphics.Rendering.Plot.Defaults
@@ -143,8 +146,8 @@
   ds <- gets _data
   let ((xmin,xmax),(ymin,ymax)) = calculateRanges ds
   case ax of
-    XAxis -> setRange ax sd sc xmin xmax
-    YAxis -> setRange ax sd sc ymin ymax
+    XAxis -> setRange ax sd sc (if sc == Log then if xmin == 0 then 1 else xmin else xmin) xmax
+    YAxis -> setRange ax sd sc (if sc == Log then if ymin == 0 then 1 else ymin else ymin) ymax
                     
 -----------------------------------------------------------------------------
 
diff --git a/lib/Graphics/Rendering/Plot/Render/Plot/Data.hs b/lib/Graphics/Rendering/Plot/Render/Plot/Data.hs
--- a/lib/Graphics/Rendering/Plot/Render/Plot/Data.hs
+++ b/lib/Graphics/Rendering/Plot/Render/Plot/Data.hs
@@ -193,7 +193,7 @@
   let dat = case dat' of
             Left dat'' → map (\((m,a),b) -> Left (if xsc == Log then (m,logBase 10 a) else (m,a)
                                                 ,if ysc == Log then (logBase 10 b) else b)) dat''
-            Right dat''' -> map (\(((m1,a),(bl,bu)),((m2,c),(dl,du))) → let (a',c') = if xsc == Log then (logBase 10 a,logBase 10 c) else (a,c)
+            Right dat''' -> map (\(((m1,a),(bl,bu)),((m2,c),(dl,du))) → let (a',c') = if xsc == Log then (logBase 10 $ mapVector zeroToOne a,logBase 10 $ mapVector zeroToOne c) else (a,c)
                                                                             (bl',bu',dl',du') = if ysc == Log then (logBase 10 bl,logBase 10 bu,logBase 10 dl,logBase 10 du) else (bl,bu,dl,du) 
                                                                        in Right (((m1,a'),(bl',bu')),((m2,c'),(dl',du')))) dat'''
   case d of
diff --git a/plot.cabal b/plot.cabal
--- a/plot.cabal
+++ b/plot.cabal
@@ -1,5 +1,5 @@
 Name:                plot
-Version:             0.1.3.1
+Version:             0.1.3.2
 License:             BSD3
 License-file:        LICENSE
 Copyright:           (c) A.V.H. McPhail 2010
