diff --git a/CHANGES.markdown b/CHANGES.markdown
--- a/CHANGES.markdown
+++ b/CHANGES.markdown
@@ -1,3 +1,24 @@
+0.7.1 (11 September 2013)
+-------------------------
+
+* **New features**
+
+    - New standard miter limit attribute
+    - New functions `lineColorA`, `lineWidthA`, `lineMiterLimitA`,
+      `fontSizeA` for directly applying attribute values
+    - `setDefault2DAttributes` now sets default line cap (butt), line
+      join (miter), and miter limit (10) attributes
+
+* **New instances**
+
+    - `Data.Default` instances for
+        - `LineCap`
+	- `LineJoin`
+	- `LineMiterLimit`
+	- `LineWidth`
+	- `LineColor`
+	- `FontSize`
+
 0.7 (9 August 2013)
 -------------------
 
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:             0.7
+Version:             0.7.1
 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
diff --git a/src/Diagrams/Attributes.hs b/src/Diagrams/Attributes.hs
--- a/src/Diagrams/Attributes.hs
+++ b/src/Diagrams/Attributes.hs
@@ -29,7 +29,7 @@
     Color(..), SomeColor(..)
 
   -- ** Line color
-  , LineColor, getLineColor, lineColor, lc, lcA
+  , LineColor, getLineColor, lineColor, lineColorA, lc, lcA
 
   -- ** Fill color
   , FillColor, getFillColor, recommendFillColor, fillColor, fc, fcA
@@ -42,7 +42,7 @@
 
   -- * Lines
   -- ** Width
-  , LineWidth, getLineWidth, lineWidth, lw
+  , LineWidth, getLineWidth, lineWidth, lineWidthA, lw
 
   -- ** Cap style
   , LineCap(..), LineCapA, getLineCap, lineCap
@@ -50,6 +50,9 @@
   -- ** Join style
   , LineJoin(..), LineJoinA, getLineJoin, lineJoin
 
+  -- ** Miter limit
+  , LineMiterLimit(..), getLineMiterLimit, lineMiterLimit, lineMiterLimitA
+
   -- ** Dashing
   , Dashing(..), DashingA, getDashing, dashing
 
@@ -57,6 +60,8 @@
 
 import           Diagrams.Core
 
+import           Data.Default.Class
+
 import           Data.Colour
 import           Data.Colour.RGBSpace
 import           Data.Colour.SRGB (sRGBSpace)
@@ -99,6 +104,9 @@
   deriving (Typeable, Semigroup)
 instance AttributeClass LineColor
 
+instance Default LineColor where
+    def = LineColor (Last (SomeColor black))
+
 getLineColor :: LineColor -> SomeColor
 getLineColor (LineColor (Last c)) = c
 
@@ -110,6 +118,10 @@
 lineColor :: (Color c, HasStyle a) => c -> a -> a
 lineColor = applyAttr . LineColor . Last . SomeColor
 
+-- | Apply a 'lineColor' attribute.
+lineColorA :: HasStyle a => LineColor -> a -> a
+lineColorA = applyAttr
+
 -- | A synonym for 'lineColor', specialized to @'Colour' Double@
 --   (i.e. opaque colors).
 lc :: HasStyle a => Colour Double -> a -> a
@@ -235,6 +247,9 @@
   deriving (Typeable, Semigroup)
 instance AttributeClass LineWidth
 
+instance Default LineWidth where
+    def = LineWidth (Last 0.01)
+
 getLineWidth :: LineWidth -> Double
 getLineWidth (LineWidth (Last w)) = w
 
@@ -242,6 +257,10 @@
 lineWidth :: HasStyle a => Double -> a -> a
 lineWidth = applyAttr . LineWidth . Last
 
+-- | Apply a 'LineWidth' attribute.
+lineWidthA ::  HasStyle a => LineWidth -> a -> a
+lineWidthA = applyAttr
+
 -- | A convenient synonym for 'lineWidth'.
 lw :: HasStyle a => Double -> a -> a
 lw = lineWidth
@@ -258,6 +277,9 @@
   deriving (Typeable, Semigroup, Eq)
 instance AttributeClass LineCapA
 
+instance Default LineCap where
+    def = LineCapButt
+
 getLineCap :: LineCapA -> LineCap
 getLineCap (LineCapA (Last c)) = c
 
@@ -278,12 +300,36 @@
   deriving (Typeable, Semigroup, Eq)
 instance AttributeClass LineJoinA
 
+instance Default LineJoin where
+    def = LineJoinMiter
+
 getLineJoin :: LineJoinA -> LineJoin
 getLineJoin (LineJoinA (Last j)) = j
 
 -- | Set the segment join style.
 lineJoin :: HasStyle a => LineJoin -> a -> a
 lineJoin = applyAttr . LineJoinA . Last
+
+
+-- | Miter limit attribute affecting the 'LineJoinMiter' joins.
+--   For some backends this value may have additional effects.
+newtype LineMiterLimit = LineMiterLimit (Last Double)
+  deriving (Typeable, Semigroup)
+instance AttributeClass LineMiterLimit
+
+instance Default LineMiterLimit where
+    def = LineMiterLimit (Last 10)
+
+getLineMiterLimit :: LineMiterLimit -> Double
+getLineMiterLimit (LineMiterLimit (Last l)) = l
+
+-- | Set the miter limit for joins with 'LineJoinMiter'.
+lineMiterLimit :: HasStyle a => Double -> a -> a
+lineMiterLimit = applyAttr . LineMiterLimit . Last
+
+-- | Apply a 'LineMiterLimit' attribute.
+lineMiterLimitA :: HasStyle a => LineMiterLimit -> a -> a
+lineMiterLimitA = applyAttr
 
 -- | Create lines that are dashing... er, dashed.
 data Dashing = Dashing [Double] Double
diff --git a/src/Diagrams/TwoD/Adjust.hs b/src/Diagrams/TwoD/Adjust.hs
--- a/src/Diagrams/TwoD/Adjust.hs
+++ b/src/Diagrams/TwoD/Adjust.hs
@@ -24,18 +24,22 @@
 
 import Diagrams.Core
 
-import Diagrams.Attributes  (lw, lc)
+import Diagrams.Attributes  (lineWidthA, lineColorA, lineCap
+                            , lineJoin, lineMiterLimitA
+                            )
 import Diagrams.Util        ((#))
 
 import Diagrams.TwoD.Types  (R2, p2)
 import Diagrams.TwoD.Size   ( size2D, center2D, SizeSpec2D(..)
                             , requiredScaleT, requiredScale
                             )
-import Diagrams.TwoD.Text   (fontSize)
+import Diagrams.TwoD.Text   (fontSizeA)
 
 import Data.AffineSpace     ((.-.))
 import Data.Semigroup
 
+import Data.Default.Class
+
 import Data.Colour.Names    (black)
 
 -- | Set default attributes of a 2D diagram (in case they have not
@@ -46,8 +50,15 @@
 --       * Line color black
 --
 --       * Font size 1
+--
+--       * Line cap LineCapButt
+--
+--       * line join miter
+--
+--       * Miter limit 10
 setDefault2DAttributes :: Semigroup m => QDiagram b R2 m -> QDiagram b R2 m
-setDefault2DAttributes d = d # lw 0.01 # lc black # fontSize 1
+setDefault2DAttributes d = d # lineWidthA def # lineColorA def # fontSizeA def
+                             # lineCap def # lineJoin def # lineMiterLimitA def
 
 -- | Adjust the size and position of a 2D diagram to fit within the
 --   requested size. The first two arguments specify a method for
diff --git a/src/Diagrams/TwoD/Text.hs b/src/Diagrams/TwoD/Text.hs
--- a/src/Diagrams/TwoD/Text.hs
+++ b/src/Diagrams/TwoD/Text.hs
@@ -24,7 +24,7 @@
   -- ** Font family
   , Font(..), getFont, font
   -- ** Font size
-  , FontSize(..), getFontSize, fontSize
+  , FontSize(..), getFontSize, fontSize, fontSizeA
   -- ** Font slant
   , FontSlant(..), FontSlantA, getFontSlant, fontSlant, italic, oblique
   -- ** Font weight
@@ -41,8 +41,10 @@
 
 import Data.Colour
 
-import Data.Typeable
+import           Data.Default.Class
 
+import           Data.Typeable
+
 ------------------------------------------------------------
 -- Text diagrams
 ------------------------------------------------------------
@@ -167,6 +169,9 @@
   deriving (Typeable, Semigroup, Eq)
 instance AttributeClass FontSize
 
+instance Default FontSize where
+    def = FontSize (Last 1)
+
 -- | Extract the size from a @FontSize@ attribute.
 getFontSize :: FontSize -> Double
 getFontSize (FontSize (Last s)) = s
@@ -176,6 +181,10 @@
 --   is @1@.
 fontSize :: HasStyle a => Double -> a -> a
 fontSize = applyAttr . FontSize . Last
+
+-- | Apply a 'FontSize' attribute.
+fontSizeA :: HasStyle a => FontSize -> a -> a
+fontSizeA = applyAttr
 
 --------------------------------------------------
 -- Font slant
