diff --git a/utility.c b/utility.c
index b2228f0..cf90f37 100644
--- a/utility.c
+++ b/utility.c
@@ -58,9 +58,8 @@
  * be set.)
  */
 int
-copyFile(
-	 const char *srcName,
-	 const char *destName, int setModes, int followLinks)
+copyFile( const char *srcName, const char *destName, 
+	 int setModes, int followLinks)
 {
     int rfd;
     int wfd;
@@ -75,7 +74,6 @@
 	result = stat(srcName, &srcStatBuf);
     else 
 	result = lstat(srcName, &srcStatBuf);
-
     if (result < 0) {
 	perror(srcName);
 	return FALSE;
@@ -115,7 +113,8 @@
 	    return (FALSE);
 	}
 	link_val[link_size] = '\0';
-	if (symlink(link_val, destName)) {
+	link_size = symlink(link_val, destName);
+	if (link_size != 0) {
 	    perror(destName);
 	    return (FALSE);
 	}
@@ -179,7 +178,6 @@
 
 
   error_exit:
-    //fprintf(stderr, "choking on %s\n", destName);
     perror(destName);
     close(rfd);
     close(wfd);
@@ -476,10 +474,11 @@
     struct stat statbuf;
     struct dirent *next;
 
-    if (followLinks)
-	status = lstat(fileName, &statbuf);
-    else
+    if (followLinks == FALSE)
 	status = stat(fileName, &statbuf);
+    else
+	status = lstat(fileName, &statbuf);
+
     if (status < 0) {
 	perror(fileName);
 	return (FALSE);
@@ -487,16 +486,11 @@
 
     if (recurse == FALSE) {
 	if (S_ISDIR(statbuf.st_mode)) {
-	    if (dirAction == NULL)
-		return (TRUE);
-	    else
+	    if (dirAction != NULL)
 		return (dirAction(fileName));
-	} else {
-	    if (fileAction == NULL)
-		return (TRUE);
 	    else
-		return (fileAction(fileName));
-	}
+		return (TRUE);
+	} 
     }
 
     if (S_ISDIR(statbuf.st_mode)) {
