diff --git a/src/wsdl/org/apache/axis/wsdl/wsdl2ws/WSDL2Ws.java b/src/wsdl/org/apache/axis/wsdl/wsdl2ws/WSDL2Ws.java
index 8260640..ecc5fbd 100644
--- a/src/wsdl/org/apache/axis/wsdl/wsdl2ws/WSDL2Ws.java
+++ b/src/wsdl/org/apache/axis/wsdl/wsdl2ws/WSDL2Ws.java
@@ -110,9 +110,10 @@
     public static void main(String[] args) throws Exception
     {
         // Kick off code generation
+        WSDL2Ws gen = null;
         try
         {
-            WSDL2Ws gen = new WSDL2Ws(args);
+            gen = new WSDL2Ws(args);
             gen.generateWrappers();
         }
         catch (Exception e)
@@ -124,7 +125,13 @@
             
             if (e.getMessage() != null)
                 System.out.println("\nCode generation failed. Please see errors above.\n");
+            
+            return;
         }
+        
+        // Indicate code generation complete and show where stored.
+        System.out.println("\nCode generation completed. Generated files in directory\n'" 
+                + gen.getCmdLineArgs().getOutputDirectory() + "'.");
     }    
     
     /**
@@ -293,9 +300,6 @@
         
         // Generate code
         wsg.generate();
-        
-        // Indicate code generation complete and show where stored.
-        System.out.println("\nCode generation completed. Generated files in directory\n'" + c_cmdLineArgs.getOutputDirectory() + "'.");
     }    
     
     // The following 3 exposeXXX methods attempts to expose anonymous types so that 
@@ -562,4 +566,14 @@
             wsContext.getTypemap().addType(newTypeName, innerClassType);
         }
     }
+    
+    /**
+     * Return command line arguments. 
+     * 
+     * @return c_cmdLineArgs
+     */
+    private CLArgParser getCmdLineArgs()
+    {
+        return c_cmdLineArgs;
+    }
 }
