diff --git a/src/Graphics/Xournal/Render/BBox.hs b/src/Graphics/Xournal/Render/BBox.hs
--- a/src/Graphics/Xournal/Render/BBox.hs
+++ b/src/Graphics/Xournal/Render/BBox.hs
@@ -47,6 +47,23 @@
     restore
 
 
+cairoOneStrokeSelected :: StrokeBBox -> Render ()
+cairoOneStrokeSelected sbbox = do 
+  let s = gToStroke sbbox 
+  case M.lookup (stroke_color s) predefined_pencolor of 
+    Just (r,g,b,a) -> setSourceRGBA r g b a
+    Nothing -> setSourceRGBA 0 0 0 1 
+  setLineWidth (stroke_width s * 4.0) 
+  setLineCap LineCapRound
+  setLineJoin LineJoinRound
+  drawOneStrokeCurve . stroke_data $ s 
+  stroke 
+  setSourceRGBA 1 1 1 1
+  setLineWidth (stroke_width s)
+  drawOneStrokeCurve . stroke_data $ s 
+  stroke
+
+  
 cairoOneStrokeBBoxOnly :: StrokeBBox -> Render () 
 cairoOneStrokeBBoxOnly sbbox = do  
   let s = gToStroke sbbox
diff --git a/src/Graphics/Xournal/Render/BBoxMapPDF.hs b/src/Graphics/Xournal/Render/BBoxMapPDF.hs
--- a/src/Graphics/Xournal/Render/BBoxMapPDF.hs
+++ b/src/Graphics/Xournal/Render/BBoxMapPDF.hs
@@ -127,29 +127,7 @@
       Select (O (Just sz)) = normalizedothers 
   in GPage (get g_dimension p) (get g_background p) (Select . O . Just $ replace s' sz)
        
-  --  GPage (gdimension p) (gbackground p) (gFromList (replace s' others)) 
-    --  (s':others))
 
-      
-{-
-instance GCast TPageBBoxMapPDF TTempPageSelectPDF where
-  gcast = ttempPageSelectPDFFromTPageBBoxMapPDF
-
-ttempPageSelectPDFFromTPageBBoxMapPDF :: TPageBBoxMapPDF -> TTempPageSelectPDF 
-ttempPageSelectPDFFromTPageBBoxMapPDF p = 
-  let -- (x:xs) = gToList (glayers p)
-      normalizedothers = case get g_layers p of 
-        NoSelect [] -> error "something wrong in ttemppageBBoxMapPDFBufFromTPageSelectPDFBuf" 
-        NoSelect (x:xs) -> Select (gFromList (x:xs))
-        Select (O (Nothing)) -> error "something wrong in ttemppageBBoxMapPDFBufFromTPageSelectPDFBuf"
-        others@(Select (O (Just _))) -> others 
-      Select (O (Just sz)) = normalizedothers 
-      curr  = current sz 
-      currtemp = GLayer . TEitherAlterHitted . Left . gToList . gstrokes $ curr
-  in  GPage (get g_dimension p) (get g_background p) 
-            (TLayerSelectInPage currtemp normalizedothers)
--}      
-
 instance GCast TPageBBoxMapPDFBuf TTempPageSelectPDFBuf where
   gcast = ttempPageSelectPDFBufFromTPageBBoxMapPDFBuf
 
@@ -167,14 +145,7 @@
   in  GPage (get g_dimension p) (get g_background p) 
             (TLayerSelectInPageBuf currtemp normalizedothers)
         
-        
-{-  let (x:xs) = gToList (get g_layers p)
-      l = GLayerBuf { 
-          gbuffer = gbuffer x ,
-          gbstrokes = TEitherAlterHitted . Left . gToList . gbstrokes $ x
-          }
-  in  GPage (gdimension p) (gbackground p) (TLayerSelectInPageBuf l xs) -}
-
+      
 ----------------------      
 
 
@@ -337,6 +308,8 @@
   case get g_buffer layer of 
     LyBuf (Just sfc) -> do clipBBox mbbox 
                            setSourceSurface sfc 0 0 
+                           -- setOperator OperatorSource
+                           -- setAntialias AntialiasNone
                            paint 
                            resetClip 
     _ -> cairoDrawLayerBBox mbbox (gcast layer :: TLayerBBox)
diff --git a/src/Graphics/Xournal/Render/PDFBackground.hs b/src/Graphics/Xournal/Render/PDFBackground.hs
--- a/src/Graphics/Xournal/Render/PDFBackground.hs
+++ b/src/Graphics/Xournal/Render/PDFBackground.hs
@@ -136,12 +136,16 @@
           Nothing -> cairoRenderOption DrawBkgPDF (b,dim)
           Just sfc -> do 
             setSourceSurface sfc 0 0 
+            -- setOperator OperatorSource
+            -- setAntialias AntialiasNone
             paint 
       BkgPDFPDF _ _ _ _ msfc -> do 
         case msfc of 
           Nothing -> cairoRenderOption DrawBkgPDF (b,dim)
           Just sfc -> do 
             setSourceSurface sfc 0 0 
+            -- setOperator OperatorSource
+            -- setAntialias AntialiasNone
             paint 
   cairoRenderOption (DrawPDFInBBox mbbox) (b,dim) = do 
     case b of 
diff --git a/src/Graphics/Xournal/Render/Simple.hs b/src/Graphics/Xournal/Render/Simple.hs
--- a/src/Graphics/Xournal/Render/Simple.hs
+++ b/src/Graphics/Xournal/Render/Simple.hs
@@ -24,10 +24,16 @@
 
 drawOneStroke :: Stroke -> Render ()
 drawOneStroke s = do 
+  let opacity = if stroke_tool s == "highlighter" 
+                then predefined_highlighter_opacity
+                else 1.0
+  
   case M.lookup (stroke_color s) predefined_pencolor of
-    Just (r,g,b,a) -> setSourceRGBA r g b a 
+    Just (r,g,b,a) -> setSourceRGBA r g b (a*opacity) 
     Nothing -> setSourceRGBA 0 0 0 1
   setLineWidth . stroke_width $ s 
+  setLineCap LineCapRound
+  setLineJoin LineJoinRound
   drawOneStrokeCurve . stroke_data $ s
   stroke
 
diff --git a/xournal-render.cabal b/xournal-render.cabal
--- a/xournal-render.cabal
+++ b/xournal-render.cabal
@@ -1,5 +1,5 @@
 Name:		xournal-render
-Version:	0.5.0.0
+Version:	0.5.1
 Synopsis:       Xournal file renderer
 Description: 	Rendering library using cairo for xournal file format
 License: 	BSD3
@@ -32,7 +32,7 @@
                    bytestring == 0.9.*,
                    poppler == 0.12.*, 
                    fclabels == 1.0.*, 
-                   xournal-types == 0.3.*,
+                   xournal-types >= 0.3.1 && < 0.4,
                    TypeCompose == 0.9.*
   else
     Build-Depends: base == 4.*, 
@@ -42,7 +42,7 @@
                    strict == 0.3.*, 
                    bytestring == 0.9.*,
                    fclabels == 1.0.*, 
-                   xournal-types == 0.3.*,
+                   xournal-types >= 0.3.1 && < 0.4,
                    TypeCompose == 0.9.*
 
 
