diff --git a/Makefile.org b/Makefile.org
index 76fdbdf..3f4163f 100644
--- a/Makefile.org
+++ b/Makefile.org
@@ -1,3 +1,4 @@
+.NOTPARALLEL:
 ##
 ## Makefile for OpenSSL
 ##
diff --git a/Makefile.shared b/Makefile.shared
index a2aa980..5a36d05 100644
--- a/Makefile.shared
+++ b/Makefile.shared
@@ -164,11 +164,11 @@ link_app.:
 	$(LINK_APP)
 
 link_o.gnu:
-	@ $(DO_GNU_SO); $(LINK_SO_O)
+	$(DO_GNU_SO); $(LINK_SO_O)
 link_a.gnu:
-	@ $(DO_GNU_SO); $(LINK_SO_A)
+	$(DO_GNU_SO); $(LINK_SO_A)
 link_app.gnu:
-	@ $(DO_GNU_APP); $(LINK_APP)
+	$(DO_GNU_APP); $(LINK_APP)
 
 DO_BEOS_SO=	SHLIB=lib$(LIBNAME).so; \
 	SHLIB_SUFFIX=; \
@@ -224,7 +224,7 @@ link_app.bsd:
 # Alternative to this heuristic approach is to develop specific
 # MacOS X dso module relying on whichever "native" dyld interface.
 link_o.darwin:
-	@ $(CALC_VERSIONS); \
+	$(CALC_VERSIONS); \
 	SHLIB=lib$(LIBNAME); \
 	SHLIB_SUFFIX=.dylib; \
 	ALLSYMSFLAGS='-all_load'; \
@@ -238,7 +238,7 @@ link_o.darwin:
 	fi; \
 	$(LINK_SO_O)
 link_a.darwin:
-	@ $(CALC_VERSIONS); \
+	$(CALC_VERSIONS); \
 	SHLIB=lib$(LIBNAME); \
 	SHLIB_SUFFIX=.dylib; \
 	ALLSYMSFLAGS='-all_load'; \
diff --git a/util/mkdir-p.pl b/util/mkdir-p.pl
index e73d02b..7870444 100755
--- a/util/mkdir-p.pl
+++ b/util/mkdir-p.pl
@@ -29,6 +29,10 @@ sub do_mkdir_p {
     do_mkdir_p($parent);
   }
 
-  mkdir($dir, 0777) || die "Cannot create directory $dir: $!\n";
-  print "created directory `$dir'\n";
+  mkdir($dir, 0777); # allow error here if directory already exist due to parallel build
+  if ( -d $dir) {
+    print "created directory `$dir'\n";
+  } else {
+    die "Cannot create directory $dir: $!\n";
+  }
 }
