diff --git a/src/fl_line_style.cxx b/src/fl_line_style.cxx
index e93f159ec06239f42eb62a7fb01c553dac5f1488..b2bf1fc122427e7c61a21dd07fe5c7b17c5c7649 100644
--- a/src/fl_line_style.cxx
+++ b/src/fl_line_style.cxx
@@ -117,7 +117,9 @@ void Fl_Device::line_style(int style, int width, char* dashes) {
   fl_quartz_line_width_ = (float)width; 
   fl_quartz_line_cap_ = Cap[(style>>8)&3];
   // when printing kCGLineCapSquare seems better for solid lines
-  if (Fl_Device::current()->type() == quartz_printer && style == FL_SOLID) fl_quartz_line_cap_ = kCGLineCapSquare;
+  if (Fl_Device::current()->type() == quartz_printer && style == FL_SOLID && dashes == NULL) {
+    fl_quartz_line_cap_ = kCGLineCapSquare;
+    }
   fl_quartz_line_join_ = Join[(style>>12)&3];
   char *d = dashes; 
   static CGFloat pattern[16];