Changes to Version 0.7-0

   o Fixed problem with analytic gradient, which caused convergence problems for some models.

   o Simplified optimization.

   o Added modification indices (preliminary version).
    
   o Some changes to start values.
    
   o Added RMSEA to fit indices. 
   
   o Added Klein dataset. 
   
Changes to Version 0.7-1

   o Replaced F with FALSE as logical, F with f as variable.
   
Changes to Version 0.7-2

   o Fixed tsls examples to run even if a global variable named F exists.
   
Changes to Version 0.7-3

   o Fixed bug in start-values routine that affected unstandardized models.
   
   o Added code to try to detect under-identified models.

Changes to Version 0.7-5

   o Made arguments to method functions consistent with generics (mostly adding ...).
   
Changes to Version 0.7-6

   o Check for negative degrees of freedom.
   
Changes to Version 0.7-7

   o Fixed bug in sem.default and startvalues that prevented the model from being fit when there are all equality constraints affect precisely the same numbers of parameters.
   
   o Fixed bug in tsls.formula that could cause the wrong variable to be identified as the response (causing the fit to fail).
   
   o Added code to detect more instances of nonconvergence.
   
   o Other small changes to code and documentation.
   
Changes to Version 0.7-8

   o Fixed bug in tsls.formula that could prevent model formula from being evaluated (producing an error).
   
Changes to Version 0.7-9

   o Fixed bug that caused a model with only one endogenous variable to fail.
   
   o Improved computation of RMSEA confidence limits
   
Changes to Version 0.8-0

   o Put in a warning for (unfixed) observed or latent variable without either variance or error-variance term specified (i.e., double-headed arrow). As far as I know, this will always produce an error.

Changes to Version 0.8-1

   o Fixed a bug in tsls.formula that caused the function to fail when the printed representation of the instruments formula extended over more than one line.
   
Changes to Version 0.8-2

   o Fixed a bug in startvalues() and sem.default() that caused the variables (observed + unobserved) in the model to be counted incorrectly in some (unusual) circumstances.
   
Changes to Version 0.9-0

   o Added function specify.model() to simplify the process of sem model specification.
   
   o Added boot.sem() to compute bootstrapped standard-error estimates and confidence intervals for sem parameters.
   
   o sem package now has a namespace.
   
   o Added digits argument to path.diagram(), as suggested by William Revelle.
   
   o New argument raw to sem() to accommodate raw moment matrices (for models with intercepts, after a suggestion by Mike Stoolmiller). Added generic function raw.moments() with formula and default methods to compute raw-moment matrices.
   
   o Small changes.
   
Changes to Version 0.9-1

   o Compute and report the chisquare for a null model in which the observed variables are uncorrelated. Added associated additional fit indices (suggested by Barbara Bredner).
   
Changes to Version 0.9-2

   o Added sem methods for deviance and df.residual generics.
   
   o Small changes.
   
Changes to Version 0.9-3

   o  Changed definition to BIC to conform to recommendation in Raftery (1995), from his previous suggestion in Raftery (1993). Thanks for Ken Bollen for pointing this out.
   
   o  Small documentation changes.
   
   o  Fixed a bug that could cause summary.sem() to fail for a just-identified model (reported by Ingo Feinerer).
   
Changes to Version 0.9-4

   o  Fixed version synchronization error.
   
   o  Small changes.
   
Changes to Version 0.9-5

   o  Corrected null model chisquare and, consequently, fit statistics that depend on it.

   o  Added package stats to dependencies, and changed coefficients.tsls() to coef.tsls(), so sem compiles without a warning under R 2.4.0.
   
   o  Brought sample output in ?sem up to date.
   
   o  Fixed another version synchronization error.
   
Changes to Version 0.9-6

   o  The input observed-variable covariance or moment matrix may now contain variables that are not used in the model, in which case a warning is printed (in response to a problem reported by Jarrett Byrnes).
   
   o  Stray escape character removed from print.summary.sem to avoid warning in r-devel.
   
Changes to Version 0.9-7

   o  Small fixes to docs.
   
   o  Fixed standardized.coefficients() so that it works even when there is only one structural parameter in the model (fixing a bug reported by Jarrett Byrnes).
   
   o  Added read.moments() to facilitate input of covariance, correlation, and raw-moment matrices; cov2raw() to compute raw-moments matrix from a covariance or correlation matrix; and anova.sem() to compare nested models (all suggested by Michael Friendly).
   
   o  Added SRMR fit index (requested by Mathieu d'Acremont).
   
Changes to Version 0.9-8

   o  sem() will now fit a model with no free parameters (as suggested by Ken Bollen).
   
Changes to Version 0.9-9

   o  Fixed bug in summary.sem() that sometimes prevented computation of confidence limits for RMSEA (problem reported by Frank Lawrence).
   
   o  Small fixes to docs.
   
Changes to Version 0.9-10

   o  Fixed bug in anova.tsls(), which was computing the error variance from the smaller rather than the larger model (pointed out by Achim Zeleis).
   
Changes to Version 0.9-11

   o  Replaced obsolete \non_function{} markup in Rd files (reported by Kurt Hornik).
   
Changes to Version 0.9-12

  o  Fixed bug in path.diagram() that prevented customized parameter labels (reported by Christopher Marcum).

  o  Small fixes/changes.
  
Changes to Version 0.9-13
 
  o  Added vcov.sem() and coef.sem() methods (suggested by Achim Zeileis).
  
  o  If sem() can't compute the covariance matrix of the coefficients, then summary.sem() now prints an informative error message rather than failing cryptically. 
  
Changes to Version 0.9-14

  o  Changed test for symmetry of input covariance matrix so that it uses isSymmetric() (suggested by Brian Lai).
  
  o  Added a test for positive-definiteness of the input covariance matrix.
  
  o  Intercept error in summary.sem() when bounds of RMSEA can't be computed (following problem reported by Andrew J. Wawrzyniak).
  
  o  Fixed error in summary.bootsem() produced by elimination in R of partial matching of list elements (problem reported by Sergio A. Estay).

Changes to Version 0.9-15

  o  Small fixes to mod.indices.Rd.
  
Changes to Version 0.9-16

  o  tsls() now uses Cholesky decomposition to speed up computations with many variables (slightly).
  
  o  Added fscores() function to compute factor scores, after serveral requests.
  
Changes to Verstion 0.9-17

  o  standardized.coefficients() now standardizes both path coefficients and variances/covariances (thanks to code provided by Adam Kramer).
  
  o  path.digram() now has an option for displaying standardized coefficients (again thanks to Adam Kramer).
  
Changes to Version 0.9-18

  o  path.diagram() can now run dot to create graphics output (thanks to a contribution from Michael Friendly).
  
  o  Fix to URL in DESCRIPTION (broken link reported by Jonathan Henkelman).
  
  o  Fix to startvalues() to avoid an error when the user unnecessarily but not incorrectly sets fixed variance parameters to 0 (problem reported by Rob Cribbie).
  
Changes to Version 0.9-19

  o  Fix to cross-reference in sem.Rd.
  
Changes to Version 0.9-20

  o  Fixed a bug that occurred when there is only one observed variable (reported by Anna Simonetto).
 