diff --git a/NEWS b/NEWS
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,6 @@
+Changes in 0.4.5
+* Clark Gaebel added the lognormal distribution.
+
 Changes in 0.4.4
 * Compile fixes for GHC 7.4.2
 
diff --git a/gsl-random.cabal b/gsl-random.cabal
--- a/gsl-random.cabal
+++ b/gsl-random.cabal
@@ -1,5 +1,5 @@
 name:            gsl-random
-version:         0.4.4
+version:         0.4.5
 homepage:        http://github.com/patperry/hs-gsl-random
 synopsis:        Bindings the the GSL random number generation facilities.
 description:
@@ -32,4 +32,4 @@
     ghc-options:        -Wall
     extensions:         ForeignFunctionInterface
     build-depends:      base   >= 4       && < 5
-                      , vector >= 0.7.0.1 && < 0.10
+                      , vector >= 0.7.0.1 && < 0.11
diff --git a/lib/GSL/Random/Dist.hs b/lib/GSL/Random/Dist.hs
--- a/lib/GSL/Random/Dist.hs
+++ b/lib/GSL/Random/Dist.hs
@@ -95,6 +95,15 @@
     logisticPInv,
     logisticQInv,
 
+    -- * The Log-Normal Distribution
+    getLognormal,
+
+    lognormalPdf,
+    lognormalP,
+    lognormalQ,
+    lognormalPInv,
+    lognormalQInv,
+
     -- * The Pareto Distribution
     getPareto,
 
@@ -770,6 +779,51 @@
 
 foreign import ccall unsafe "gsl/gsl_randist.h"
     gsl_ran_dirichlet :: Ptr () -> CSize -> Ptr Double -> Ptr Double -> IO ()
+
+
+
+
+-- | @lognormalPdf x zeta sigma@ evaluates the probability density
+--   @p(x)@ at @x@ for a log-normal distribution with parameters @zeta@
+--   and @sigma@, given.  The density is given by
+--   @p(x) dx = p(x) {1 \over x \sqrt{2 \pi \sigma^2} } \exp(-(\ln(x) - \zeta)^2/2 \sigma^2) dx@
+lognormalPdf :: Double -> Double -> Double -> Double
+lognormalPdf = liftDouble3 gsl_ran_lognormal_pdf
+
+foreign import ccall unsafe "gsl/gsl_randist.h"
+    gsl_ran_lognormal_pdf :: CDouble -> CDouble -> CDouble -> CDouble
+
+-- | @getLognormal zeta sigma@ gets a random lognormal with parameters @zeta@ and @sigma@.
+getLognormal :: RNG -> Double -> Double -> IO Double
+getLognormal = liftRan2 gsl_ran_lognormal
+
+foreign import ccall unsafe "gsl/gsl_randist.h"
+    gsl_ran_lognormal :: Ptr () -> CDouble -> CDouble -> IO CDouble
+
+lognormalP :: Double -> Double -> Double -> Double
+lognormalP = liftDouble3 gsl_cdf_lognormal_P
+
+foreign import ccall unsafe "gsl/gsl_randist.h"
+    gsl_cdf_lognormal_P :: CDouble -> CDouble -> CDouble -> CDouble
+
+lognormalQ :: Double -> Double -> Double -> Double
+lognormalQ = liftDouble3 gsl_cdf_lognormal_Q
+
+foreign import ccall unsafe "gsl/gsl_randist.h"
+    gsl_cdf_lognormal_Q :: CDouble -> CDouble -> CDouble -> CDouble
+
+lognormalPInv :: Double -> Double -> Double -> Double
+lognormalPInv = liftDouble3 gsl_cdf_lognormal_Pinv
+
+foreign import ccall unsafe "gsl/gsl_randist.h"
+    gsl_cdf_lognormal_Pinv :: CDouble -> CDouble -> CDouble -> CDouble
+
+lognormalQInv :: Double -> Double -> Double -> Double
+lognormalQInv = liftDouble3 gsl_cdf_lognormal_Qinv
+
+foreign import ccall unsafe "gsl/gsl_randist.h"
+    gsl_cdf_lognormal_Qinv :: CDouble -> CDouble -> CDouble -> CDouble
+
 
 
 
