diff --git a/CHANGES.markdown b/CHANGES.markdown
--- a/CHANGES.markdown
+++ b/CHANGES.markdown
@@ -1,3 +1,10 @@
+1.1.0.4 (4 April 2014)
+----------------------
+
+  - Require `intervals-0.7`
+  - Give `connectOutside` a reasonable behavior even when one or both
+    endpoints has no trace
+
 1.1.0.3 (19 March 2014)
 ----------------------
 
diff --git a/diagrams-lib.cabal b/diagrams-lib.cabal
--- a/diagrams-lib.cabal
+++ b/diagrams-lib.cabal
@@ -1,5 +1,5 @@
 Name:                diagrams-lib
-Version:             1.1.0.3
+Version:             1.1.0.4
 Synopsis:            Embedded domain-specific language for declarative graphics
 Description:         Diagrams is a flexible, extensible EDSL for creating
                      graphics of many types.  Graphics can be created
@@ -102,7 +102,7 @@
                        data-default-class < 0.1,
                        pretty >= 1.0.1.2 && < 1.2,
                        fingertree >= 0.1 && < 0.2,
-                       intervals >= 0.3 && < 0.5,
+                       intervals >= 0.7 && < 0.8,
                        lens >= 4.0 && < 4.2,
                        tagged >= 0.7,
                        optparse-applicative >= 0.7 && < 0.9,
diff --git a/src/Diagrams/Parametric.hs b/src/Diagrams/Parametric.hs
--- a/src/Diagrams/Parametric.hs
+++ b/src/Diagrams/Parametric.hs
@@ -25,7 +25,7 @@
 import           Diagrams.Core
 
 import           Data.VectorSpace
-import qualified Numeric.Interval   as I
+import qualified Numeric.Interval.Kaucher   as I
 
 -- | Codomain of parametric classes.  This is usually either @(V p)@, for relative
 --   vector results, or @(Point (V p))@, for functions with absolute coordinates.
diff --git a/src/Diagrams/Segment.hs b/src/Diagrams/Segment.hs
--- a/src/Diagrams/Segment.hs
+++ b/src/Diagrams/Segment.hs
@@ -71,8 +71,8 @@
 import           Data.Monoid.MList
 import           Data.Semigroup
 import           Data.VectorSpace    hiding (Sum (..))
-import           Numeric.Interval    (Interval (..))
-import qualified Numeric.Interval    as I
+import           Numeric.Interval.Kaucher    (Interval (..))
+import qualified Numeric.Interval.Kaucher    as I
 
 import           Diagrams.Core
 import           Diagrams.Located
diff --git a/src/Diagrams/Trail.hs b/src/Diagrams/Trail.hs
--- a/src/Diagrams/Trail.hs
+++ b/src/Diagrams/Trail.hs
@@ -112,7 +112,7 @@
 import           Data.Monoid.MList
 import           Data.Semigroup
 import           Data.VectorSpace    hiding (Sum (..))
-import qualified Numeric.Interval    as I
+import qualified Numeric.Interval.Kaucher    as I
 
 import           Diagrams.Core       hiding ((|>))
 import           Diagrams.Located
diff --git a/src/Diagrams/TwoD/Arrow.hs b/src/Diagrams/TwoD/Arrow.hs
--- a/src/Diagrams/TwoD/Arrow.hs
+++ b/src/Diagrams/TwoD/Arrow.hs
@@ -530,9 +530,7 @@
   withName n2 $ \b2 ->
     let v = location b2 .-. location b1
         midpoint = location b1 .+^ (v/2)
-        s' = traceP midpoint (-v) b1
-        e' = traceP midpoint v b2
+        s' = fromMaybe (location b1) $ traceP midpoint (-v) b1
+        e' = fromMaybe (location b2) $ traceP midpoint v b2
     in
-      case (s', e') of
-        (Just s,  Just e)  -> atop (arrowBetween' opts s e)
-        (_, _)             -> id
+      atop (arrowBetween' opts s' e')
