diff --git a/CHANGES b/CHANGES
--- a/CHANGES
+++ b/CHANGES
@@ -44,4 +44,7 @@
 		changes to reflect new hmatrix interface		
 
 0.1.2.4:
-		changes ro reflect new hmatrix interface
+		changes to reflect new hmatrix interface
+
+0.1.2.5:
+		hmatrix 0.10.0.0 release
diff --git a/hsignal.cabal b/hsignal.cabal
--- a/hsignal.cabal
+++ b/hsignal.cabal
@@ -1,5 +1,5 @@
 Name:               hsignal
-Version:            0.1.2.4
+Version:            0.1.2.5
 License:            BSD3
 License-file:       LICENSE
 Author:             Vivian McPhail
@@ -26,15 +26,19 @@
 extra-source-files: configure configure.hs README INSTALL CHANGES
 extra-tmp-files:    hsignal.buildinfo
 
+flag mkl
+    description:    Link with Intel's MKL optimized libraries.
+    default:        False
+
 library
 
     Build-Depends:      base >= 3 && < 5,
                         mtl, 
                         array,
                         bytestring, storable-complex, binary,
-                        hmatrix >= 0.10.0,
-                        hmatrix-gsl-stats >= 0.1.2.4,
-                        hstatistics >= 0.2.2.3
+                        hmatrix >= 0.10.0.0,
+                        hmatrix-gsl-stats >= 0.1.2.6,
+                        hstatistics >= 0.2.2.5
 
     Extensions:         ForeignFunctionInterface
 
@@ -53,11 +57,20 @@
                               -fno-warn-orphans
                               -fno-warn-unused-binds
 
+    if flag(mkl)
+      if arch(x86_64)
+        extra-libraries:   gsl mkl_lapack mkl_intel_lp64 mkl_sequential mkl_core
+      else
+        extra-libraries:   gsl mkl_lapack mkl_intel mkl_sequential mkl_core
+
     if os(OSX)
         extra-lib-dirs: /opt/local/lib/
         include-dirs: /opt/local/include/
         extra-libraries: gsl
         frameworks: Accelerate
+
+    if os(windows)
+        extra-libraries: gsl-0 blas lapack
 
 -- The extra-libraries required for GSL
 -- should now be automatically detected by configure(.hs)
diff --git a/lib/Numeric/Signal.hs b/lib/Numeric/Signal.hs
--- a/lib/Numeric/Signal.hs
+++ b/lib/Numeric/Signal.hs
@@ -42,8 +42,7 @@
 
 --import Data.Packed.Vector
 --import Data.Packed(Container(..))
-import Numeric.Vector
-import Numeric.GSL.Vector
+import Numeric.LinearAlgebra
 
 import qualified Numeric.GSL.Fourier as F
 
@@ -205,8 +204,7 @@
 
 -- | the phase of an analytic signal
 analytic_phase :: Vector (Complex Double) -> Vector Double
-analytic_phase v = let (r,c) = fromComplex v
-                   in vectorZipR ATan2 c r
+analytic_phase = uncurry arctan2 . fromComplex
 
 -----------------------------------------------------------------------------
 
diff --git a/lib/Numeric/Signal/Internal.hs b/lib/Numeric/Signal/Internal.hs
--- a/lib/Numeric/Signal/Internal.hs
+++ b/lib/Numeric/Signal/Internal.hs
@@ -28,8 +28,7 @@
 
 import Data.Packed.Development(createVector,vec,app1,app2,app3,app4)
 --import Data.Packed.Vector
-import Numeric.Container
-import Numeric.Vector
+import Numeric.LinearAlgebra
 
 --import Numeric.LinearAlgebra.Algorithms
 --import Numeric.LinearAlgebra.Linear
diff --git a/lib/Numeric/Signal/Multichannel.hs b/lib/Numeric/Signal/Multichannel.hs
--- a/lib/Numeric/Signal/Multichannel.hs
+++ b/lib/Numeric/Signal/Multichannel.hs
@@ -49,8 +49,7 @@
 
 import Foreign.Storable
 
-import Numeric.Vector
-import Numeric.Matrix
+import Numeric.LinearAlgebra
 
 --import qualified Numeric.GSL.Fourier as F
 
