diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart04.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart04.java
index 35796a32bd113ff63c87e35880030b40be6ab6b4..9112824eaf3959ae17cc271bed02af9a092e60e7 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart04.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart04.java
@@ -53,6 +53,7 @@ public class LineChart04 implements ExampleChart {
       series.setLineStyle(SeriesLineStyle.SOLID);
       series.setMarker(SeriesMarker.CIRCLE);
       series.setMarkerColor(SeriesColor.BLUE);
+
     }
 
     return chart;
diff --git a/xchart/src/main/java/com/xeiam/xchart/XChartPanel.java b/xchart/src/main/java/com/xeiam/xchart/XChartPanel.java
index d91fe2bcd9b8fd5c23ad38fa2cc38acdfad622a7..6d2365e814a001cea0a857e1faf031f94f9c4a4d 100644
--- a/xchart/src/main/java/com/xeiam/xchart/XChartPanel.java
+++ b/xchart/src/main/java/com/xeiam/xchart/XChartPanel.java
@@ -88,7 +88,9 @@ public class XChartPanel extends JPanel {
 
     super.paintComponent(g);
 
-    chart.paint((Graphics2D) g, getWidth(), getHeight());
+    Graphics2D g2d = (Graphics2D) g.create();
+    chart.paint(g2d, getWidth(), getHeight());
+    g2d.dispose();
   }
 
   @Override
diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickLabels.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickLabels.java
index d22f8635f076cfd3a3477754ed26637e71f949ac..ebd5b079037f91d0867479a06091404625325485 100644
--- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickLabels.java
+++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickLabels.java
@@ -122,7 +122,8 @@ public class AxisTickLabels implements ChartPart {
       // g.draw(bounds);
 
     }
-    else if (axisTick.getAxis().getDirection() == Axis.Direction.X && getChartPainter().getStyleManager().isXAxisTicksVisible()) { // X-Axis
+    // X-Axis
+    else if (axisTick.getAxis().getDirection() == Axis.Direction.X && getChartPainter().getStyleManager().isXAxisTicksVisible()) {
 
       double xOffset = axisTick.getAxis().getPaintZone().getX();
       double yOffset = axisTick.getAxis().getAxisTitle().getBounds().getY();
diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickMarks.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickMarks.java
index d099a4027149af7ab0c3bec36dbaf13a380606fd..87f966dd13d488defb4b7c12e23ba71d5a6c8864 100644
--- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickMarks.java
+++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickMarks.java
@@ -89,7 +89,8 @@ public class AxisTickMarks implements ChartPart {
       }
 
     }
-    else if (axisTick.getAxis().getDirection() == Axis.Direction.X && getChartPainter().getStyleManager().isXAxisTicksVisible()) { // X-Axis
+    // X-Axis
+    else if (axisTick.getAxis().getDirection() == Axis.Direction.X && getChartPainter().getStyleManager().isXAxisTicksVisible()) {
 
       double xOffset = axisTick.getAxis().getPaintZone().getX();
       double yOffset = axisTick.getAxisTickLabels().getBounds().getY() - getChartPainter().getStyleManager().getAxisTickPadding();
@@ -120,10 +121,9 @@ public class AxisTickMarks implements ChartPart {
       // Line
       if (getChartPainter().getStyleManager().isAxisTicksLineVisible()) {
 
-        Shape line =
-            new Line2D.Double(xOffset, yOffset - getChartPainter().getStyleManager().getAxisTickMarkLength(), xOffset + axisTick.getAxis().getPaintZone().getWidth(), yOffset
-                - getChartPainter().getStyleManager().getAxisTickMarkLength());
-        g.draw(line);
+        g.setStroke(getChartPainter().getStyleManager().getAxisTickMarksStroke());
+        g.drawLine((int) xOffset, (int) (yOffset - getChartPainter().getStyleManager().getAxisTickMarkLength()), (int) (xOffset + axisTick.getAxis().getPaintZone().getWidth()),
+            (int) (yOffset - getChartPainter().getStyleManager().getAxisTickMarkLength()));
       }
 
     }
diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/ChartPainter.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/ChartPainter.java
index 8242dbbf1b758dd37a139863df9348ed81cde884..48f08cc628a23fada0d768a2d70d7e2a10c94a5f 100644
--- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/ChartPainter.java
+++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/ChartPainter.java
@@ -109,7 +109,7 @@ public class ChartPainter {
 
     axisPair.paint(g);
     plot.paint(g);
-    // TODO why not just paint them first and skip the size hinting?
+    // TODO why not just paint the title first and skip the size hinting?
     chartTitle.paint(g);
     chartLegend.paint(g);
 
diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotContentLineChart.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotContentLineChart.java
index ba015102825fe973b7c4f4b7658d1724b8dbd17a..5f84e9e58330d02f8a58711ac277ed9bb813a441 100644
--- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotContentLineChart.java
+++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotContentLineChart.java
@@ -280,6 +280,7 @@ public class PlotContentLineChart extends PlotContent {
     }
 
     g.setClip(null);
+
   }
 
   /**
diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotSurface.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotSurface.java
index f0898e869dcac336a34c0c273116ea930c3e822b..c146cf64fd6aad99971aa9da0e52c2b4b158714f 100644
--- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotSurface.java
+++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotSurface.java
@@ -62,6 +62,7 @@ public class PlotSurface implements ChartPart {
     // paint plot border
     if (getChartPainter().getStyleManager().isPlotBorderVisible()) {
       g.setColor(getChartPainter().getStyleManager().getPlotBorderColor());
+      // g.setStroke(getChartPainter().getStyleManager().getAxisTickMarksStroke());
       g.draw(rect);
     }
 
@@ -84,6 +85,7 @@ public class PlotSurface implements ChartPart {
             Shape line = new Line2D.Double(bounds.getX(), yOffset, bounds.getX() + bounds.getWidth(), yOffset);
             g.draw(line);
           }
+
           // tick marks
           if (getChartPainter().getStyleManager().isPlotTicksMarksVisible()) {
 
@@ -100,11 +102,11 @@ public class PlotSurface implements ChartPart {
       // vertical
       if (getChartPainter().getStyleManager().getChartType() != ChartType.Bar
 
-      && (getChartPainter().getStyleManager().isPlotGridLinesVisible()
+          && (getChartPainter().getStyleManager().isPlotGridLinesVisible()
 
-      || getChartPainter().getStyleManager().isPlotTicksMarksVisible())
+              || getChartPainter().getStyleManager().isPlotTicksMarksVisible())
 
-      ) {
+          ) {
 
         List<Double> xAxisTickLocations = getChartPainter().getAxisPair().getXAxis().getAxisTick().getTickLocations();
         for (int i = 0; i < xAxisTickLocations.size(); i++) {