diff --git a/src/variable.cpp b/src/variable.cpp
index a8f195dbc886fa4e1da538e973f7504175879efd..c7bf34131c502c1b70dad43e0c64c48e5c605e45 100644
--- a/src/variable.cpp
+++ b/src/variable.cpp
@@ -516,9 +516,12 @@ void Variable::set(int narg, char **arg)
   strcpy(names[nvar],arg[0]);
 
   for (int i = 0; i < n-1; i++)
-    if (!isalnum(names[nvar][i]) && names[nvar][i] != '_')
-      error->all(FLERR,"Variable name must be alphanumeric or "
-                 "underscore characters");
+    if (!isalnum(names[nvar][i]) && names[nvar][i] != '_') {
+      char errmsg[128];
+      sprintf(errmsg,"Variable name '%s' must have only alphanumeric "
+              "characters or underscore",names[nvar]);
+      error->all(FLERR,errmsg);
+    }
   nvar++;
 }
 
@@ -571,11 +574,15 @@ int Variable::next(int narg, char **arg)
 
   for (int iarg = 0; iarg < narg; iarg++) {
     ivar = find(arg[iarg]);
-    if (ivar < 0) error->all(FLERR,"Invalid variable in next command");
+    if (ivar < 0) {
+      char errmsg[128];
+      sprintf(errmsg,"Invalid variable '%s' in next command",arg[iarg]);
+      error->all(FLERR,errmsg);
+    }
     if (style[ivar] == ULOOP && style[find(arg[0])] == UNIVERSE) continue;
     else if (style[ivar] == UNIVERSE && style[find(arg[0])] == ULOOP) continue;
     else if (style[ivar] != style[find(arg[0])])
-      error->all(FLERR,"All variables in next command must be same style");
+      error->all(FLERR,"All variables in next command must have same style");
   }
 
   // invalid styles: STRING, EQUAL, WORLD, ATOM, VECTOR, GETENV,
@@ -821,8 +828,11 @@ char *Variable::retrieve(char *name)
   if (ivar < 0) return NULL;
   if (which[ivar] >= num[ivar]) return NULL;
 
-  if (eval_in_progress[ivar])
-    error->all(FLERR,"Variable has circular dependency");
+  if (eval_in_progress[ivar]) {
+    char errmsg[128];
+    sprintf(errmsg,"Variable '%s' has a circular dependency",name);
+    error->all(FLERR,errmsg);
+  }
   eval_in_progress[ivar] = 1;
 
   char *str = NULL;
@@ -865,9 +875,12 @@ char *Variable::retrieve(char *name)
     strcpy(data[ivar][1],result);
     str = data[ivar][1];
   } else if (style[ivar] == PYTHON) {
-    int ifunc = python->variable_match(data[ivar][0],names[ivar],0);
-    if (ifunc < 0)
-      error->all(FLERR,"Python variable does not match Python function");
+    int ifunc = python->variable_match(data[ivar][0],name,0);
+    if (ifunc < 0) {
+      char errmsg[128];
+      sprintf(errmsg,"Python variable '%s' does not match Python function",name);
+      error->all(FLERR,errmsg);
+    }
     python->invoke_function(ifunc,data[ivar][1]);
     str = data[ivar][1];
     // if Python func returns a string longer than VALUELENGTH
@@ -894,8 +907,11 @@ char *Variable::retrieve(char *name)
 
 double Variable::compute_equal(int ivar)
 {
-  if (eval_in_progress[ivar])
-    error->all(FLERR,"Variable has circular dependency");
+  if (eval_in_progress[ivar]) {
+    char errmsg[128];
+    sprintf(errmsg,"Variable '%s' has a circular dependency",names[ivar]);
+    error->all(FLERR,errmsg);
+  }
   eval_in_progress[ivar] = 1;
 
   double value = 0.0;
@@ -936,8 +952,11 @@ void Variable::compute_atom(int ivar, int igroup,
   Tree *tree;
   double *vstore;
 
-  if (eval_in_progress[ivar])
-    error->all(FLERR,"Variable has circular dependency");
+  if (eval_in_progress[ivar]) {
+    char errmsg[128];
+    sprintf(errmsg,"Variable '%s' has a circular dependency",names[ivar]);
+    error->all(FLERR,errmsg);
+  }
   eval_in_progress[ivar] = 1;
 
   if (style[ivar] == ATOM) {
@@ -1010,17 +1029,27 @@ int Variable::compute_vector(int ivar, double **result)
     return vecs[ivar].n;
   }
 
-  if (eval_in_progress[ivar])
-    error->all(FLERR,"Variable has circular dependency");
+  if (eval_in_progress[ivar]) {
+    char errmsg[128];
+    sprintf(errmsg,"Variable '%s' has a circular dependency",names[ivar]);
+    error->all(FLERR,errmsg);
+  }
   eval_in_progress[ivar] = 1;
 
   treetype = VECTOR;
   evaluate(data[ivar][0],&tree);
   collapse_tree(tree);
   int nlen = size_tree_vector(tree);
-  if (nlen == 0) error->all(FLERR,"Vector-style variable has zero length");
-  if (nlen < 0) error->all(FLERR,
-                           "Inconsistent lengths in vector-style variable");
+  if (nlen == 0) {
+    char errmsg[128];
+    sprintf(errmsg,"Vector-style variable '%s' has zero length",names[ivar]);
+    error->all(FLERR,errmsg);
+  }
+  if (nlen < 0) {
+    char errmsg[128];
+    sprintf(errmsg,"Inconsistent lengths in vector-style variable '%s'",names[ivar]);
+    error->all(FLERR,errmsg);
+  }
 
   // (re)allocate space for results if necessary