diff --git a/src/GeneralizedSchurDecompositionSolver.jl b/src/GeneralizedSchurDecompositionSolver.jl
index e4c3935e2872d2d217a88a4dab95362f1e1e0e40..d5635484ffb67551e214ff58a55dfa4ec9319e80 100644
--- a/src/GeneralizedSchurDecompositionSolver.jl
+++ b/src/GeneralizedSchurDecompositionSolver.jl
@@ -56,7 +56,15 @@ end
 #"""
 function gs_solver!(ws::GsSolverWs,d::Matrix{Float64},e::Matrix{Float64},n1::Int64,qz_criterium::Float64)
 
-    dgges!('N', 'V', e, d, zeros(1,1), ws.vsr, ws.eigval, ws.dgges_ws)
+    try
+        dgges!('N', 'V', e, d, zeros(1,1), ws.vsr, ws.eigval, ws.dgges_ws)
+    catch e
+        if e.error_nbr = size(e,1) + 2
+            println("Warning: DGGES reports error $(e.error_nbr")
+        else
+            rethrow(e)
+        end
+    end
     nstable = ws.dgges_ws.sdim[]
     
     if nstable < n1