diff --git a/pcbnew/dialogs/dialog_plot_base.cpp b/pcbnew/dialogs/dialog_plot_base.cpp
index 3e8de1c716..4738523c0e 100644
--- a/pcbnew/dialogs/dialog_plot_base.cpp
+++ b/pcbnew/dialogs/dialog_plot_base.cpp
@@ -272,8 +272,8 @@ DIALOG_PLOT_BASE::DIALOG_PLOT_BASE( wxWindow* parent, wxWindowID id, const wxStr
 	m_plotPSNegativeOpt = new wxCheckBox( this, wxID_ANY, _("Negative plot"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_PSOptionsSizer->Add( m_plotPSNegativeOpt, 0, wxALL, 2 );
 	
-	m_usePsA4Opt = new wxCheckBox( this, wxID_ANY, _("Force A4 paper size"), wxDefaultPosition, wxDefaultSize, 0 );
-	m_PSOptionsSizer->Add( m_usePsA4Opt, 0, wxALL, 2 );
+	m_forcePSA4OutputOpt = new wxCheckBox( this, wxID_ANY, _("Force A4 output"), wxDefaultPosition, wxDefaultSize, 0 );
+	m_PSOptionsSizer->Add( m_forcePSA4OutputOpt, 0, wxALL, 2 );
 	
 	m_PlotOptionsSizer->Add( m_PSOptionsSizer, 0, wxALL|wxEXPAND, 3 );
 	
diff --git a/pcbnew/dialogs/dialog_plot_base.fbp b/pcbnew/dialogs/dialog_plot_base.fbp
index 456760fc3f..38be8deba0 100644
--- a/pcbnew/dialogs/dialog_plot_base.fbp
+++ b/pcbnew/dialogs/dialog_plot_base.fbp
@@ -3457,14 +3457,14 @@
                                                         0
                                                         0
                                                         wxID_ANY
-                                                        Force A4 paper size
+                                                        Force A4 output
                                                         
                                                         0
                                                         
                                                         0
                                                         
                                                         1
-                                                        m_usePsA4Opt
+                                                        m_forcePSA4OutputOpt
                                                         1
                                                         
                                                         
diff --git a/pcbnew/dialogs/dialog_plot_base.h b/pcbnew/dialogs/dialog_plot_base.h
index b96b694e86..3d529d6a2e 100644
--- a/pcbnew/dialogs/dialog_plot_base.h
+++ b/pcbnew/dialogs/dialog_plot_base.h
@@ -84,7 +84,7 @@ class DIALOG_PLOT_BASE : public wxDialog
 		wxStaticText* m_staticText8;
 		wxTextCtrl* m_fineAdjustYscaleOpt;
 		wxCheckBox* m_plotPSNegativeOpt;
-		wxCheckBox* m_usePsA4Opt;
+		wxCheckBox* m_forcePSA4OutputOpt;
 		wxStaticText* m_staticText2;
 		wxTextCtrl* m_messagesBox;
 		
diff --git a/pcbnew/pcb_plot_params.cpp b/pcbnew/pcb_plot_params.cpp
index a822181768..b6c2227bb8 100644
--- a/pcbnew/pcb_plot_params.cpp
+++ b/pcbnew/pcb_plot_params.cpp
@@ -86,6 +86,7 @@ PCB_PLOT_PARAMS::PCB_PLOT_PARAMS()
     m_HPGLPenOvr           = 2;
     m_PlotPSColorOpt       = true;
     m_PlotPSNegative       = false;
+    psA4Output             = false;
     m_PlotReference        = true;
     m_PlotValue            = true;
     m_PlotTextOther        = true;
@@ -139,6 +140,8 @@ void PCB_PLOT_PARAMS::Format( OUTPUTFORMATTER* aFormatter,
                        m_PlotPSColorOpt ? trueStr : falseStr );
     aFormatter->Print( aNestLevel+1, "(%s %s)\n", getTokenName( T_psnegative ),
                        m_PlotPSNegative ? trueStr : falseStr );
+    aFormatter->Print( aNestLevel+1, "(%s %s)\n", getTokenName( T_psa4output ),
+                       psA4Output ? trueStr : falseStr );
     aFormatter->Print( aNestLevel+1, "(%s %s)\n", getTokenName( T_plotreference ),
                        m_PlotReference ? trueStr : falseStr );
     aFormatter->Print( aNestLevel+1, "(%s %s)\n", getTokenName( T_plotvalue ),
@@ -201,6 +204,8 @@ bool PCB_PLOT_PARAMS::operator==( const PCB_PLOT_PARAMS &aPcbPlotParams ) const
         return false;
     if( m_PlotPSNegative != aPcbPlotParams.m_PlotPSNegative )
         return false;
+    if( psA4Output != aPcbPlotParams.psA4Output )
+        return false;
     if( m_PlotReference != aPcbPlotParams.m_PlotReference )
         return false;
     if( m_PlotValue != aPcbPlotParams.m_PlotValue )
@@ -296,6 +301,9 @@ void PCB_PLOT_PARAMS_PARSER::Parse( PCB_PLOT_PARAMS* aPcbPlotParams ) throw( IO_
         case T_usegerberextensions:
             aPcbPlotParams->useGerberExtensions = ParseBool();
             break;
+        case T_psa4output:
+            aPcbPlotParams->psA4Output = ParseBool();
+            break;
         case T_excludeedgelayer:
             aPcbPlotParams->m_ExcludeEdgeLayer = ParseBool();
             break;
diff --git a/pcbnew/pcb_plot_params.h b/pcbnew/pcb_plot_params.h
index 3e2f68f668..c01c48432e 100644
--- a/pcbnew/pcb_plot_params.h
+++ b/pcbnew/pcb_plot_params.h
@@ -90,6 +90,7 @@ private:
     bool        useGerberExtensions;
     bool        useAuxOrigin;
     bool        subtractMaskFromSilk;
+    bool        psA4Output;
     int         scaleSelection;
     wxString    outputDirectory;
 
@@ -116,6 +117,8 @@ public:
     bool        GetUseAuxOrigin() const { return useAuxOrigin; };
     void        SetScaleSelection( int aSelection ) { scaleSelection = aSelection; };
     int         GetScaleSelection() const { return scaleSelection; };
+    void        SetPsA4Output( int aForce ) { psA4Output = aForce; };
+    bool        GetPsA4Output() const { return psA4Output; };
 
     int         GetHpglPenDiameter() const { return m_HPGLPenDiam; };
     bool        SetHpglPenDiameter( int aValue );
diff --git a/pcbnew/pcb_plot_params.keywords b/pcbnew/pcb_plot_params.keywords
index 99b3976771..972afcb313 100644
--- a/pcbnew/pcb_plot_params.keywords
+++ b/pcbnew/pcb_plot_params.keywords
@@ -18,6 +18,7 @@ plotinvisibletext
 plotothertext
 plotreference
 plotvalue
+psa4output
 pscolor
 psnegative
 scaleselection
diff --git a/pcbnew/pcbplot.cpp b/pcbnew/pcbplot.cpp
index 4aa6dcf2de..455b468a6d 100644
--- a/pcbnew/pcbplot.cpp
+++ b/pcbnew/pcbplot.cpp
@@ -141,6 +141,7 @@ void DIALOG_PLOT::Init_Dialog()
     m_fineAdjustYscaleOpt->AppendText( msg );
 
     m_plotPSNegativeOpt->SetValue( g_PcbPlotOptions.m_PlotPSNegative );
+    m_forcePSA4OutputOpt->SetValue( g_PcbPlotOptions.GetPsA4Output() );
 
     //  List layers in same order than in setup layers dialog
     // (Front or Top to Back or Bottom)
@@ -514,6 +515,7 @@ void DIALOG_PLOT::applyPlotSettings()
     tempOptions.SetLayerSelection( selectedLayers );
 
     tempOptions.m_PlotPSNegative = m_plotPSNegativeOpt->GetValue();
+    tempOptions.SetPsA4Output( m_forcePSA4OutputOpt->GetValue() );
 
     // Set output directory and replace backslashes with forward ones
     wxString dirStr;
@@ -732,7 +734,7 @@ void DIALOG_PLOT::Plot( wxCommandEvent& event )
             {
             case PLOT_FORMAT_POST:
                 success = m_Parent->Genere_PS( fn.GetFullPath(), layer,
-                                               m_usePsA4Opt->GetValue(),
+                                               g_PcbPlotOptions.GetPsA4Output(),
                                                g_PcbPlotOptions.m_PlotMode );
                 break;