diff --git a/src/gui_mac.c b/src/gui_mac.c
index 69c1903..5ba9fec 100644
--- a/src/gui_mac.c
+++ b/src/gui_mac.c
@@ -5728,7 +5728,7 @@
 	case VIM_QUESTION: useIcon = kNoteIcon; break;
 	case VIM_WARNING:  useIcon = kCautionIcon; break;
 	case VIM_ERROR:    useIcon = kStopIcon; break;
-	default:           useIcon = kStopIcon;
+	default:	   useIcon = kStopIcon;
     }
     AppendDITL(theDialog, iconDITL, overlayDITL);
     ReleaseResource(iconDITL);
diff --git a/src/if_sniff.c b/src/if_sniff.c
index a9e9be0..5cacb72 100644
--- a/src/if_sniff.c
+++ b/src/if_sniff.c
@@ -449,7 +449,7 @@
     if (!sniff_cmd)
     {
 	struct sn_cmd_list *list = sniff_cmd_ext;
-	while(list)
+	while (list)
 	{
 	    if (!strcmp(cmd, list->sniff_cmd->cmd_name))
 	    {
@@ -479,7 +479,7 @@
 	/* unescape message text */
 	char *p = msg;
 	char *end = p+strlen(msg);
-	while(*p)
+	while (*p)
 	{
 	    if (*p == '\\')
 		mch_memmove(p,p+1,end-p);
@@ -489,7 +489,7 @@
 	SNIFF_TRACE1("request def = %s\n",def);
 	SNIFF_TRACE1("request msg = %s\n",msg);
 
-	while(list && list->next_cmd)
+	while (list && list->next_cmd)
 	    list = list->next_cmd;
 	if (!list)
 	    sniff_cmd_ext = cmd_node;
@@ -628,7 +628,7 @@
 	    gui_mch_wait_for_chars(0L);
 #endif
 #ifdef WIN32
-	while(sniffBufStart != NULL)
+	while (sniffBufStart != NULL)
 	{
 	    struct sniffBufNode *node = sniffBufStart;
 	    sniffBufStart = sniffBufStart->next;
@@ -789,7 +789,7 @@
     command   = buffer[0];
     arguments = &buffer[1];
     token = strtok(arguments, sniff_rq_sep);
-    while(argc <3)
+    while (argc <3)
     {
 	if (token)
 	{
@@ -925,7 +925,7 @@
 	default :
 	    break;
     }
-    while(argc)
+    while (argc)
 	vim_free(argv[--argc]);
 }
 
diff --git a/src/netbeans.c b/src/netbeans.c
index d2f4ce4..fc93f93 100644
--- a/src/netbeans.c
+++ b/src/netbeans.c
@@ -978,7 +978,7 @@
     buf_list_used = 0;
 
     /* free the queued key commands */
-    while(key_node != NULL && key_node != &keyHead)
+    while (key_node != NULL && key_node != &keyHead)
     {
 	keyQ_T *next = key_node->next;
 	vim_free(key_node->keystr);
@@ -993,7 +993,7 @@
     }
 
     /* free the queued netbeans commands */
-    while(cmd_node != NULL && cmd_node != &head)
+    while (cmd_node != NULL && cmd_node != &head)
     {
 	queue_T *next = cmd_node->next;
 	vim_free(cmd_node->buffer);
diff --git a/src/sha256.c b/src/sha256.c
index 0b931a8..3392fc0 100644
--- a/src/sha256.c
+++ b/src/sha256.c
@@ -7,9 +7,11 @@
  * See README.txt for an overview of the Vim source code.
  *
  * FIPS-180-2 compliant SHA-256 implementation
- * GPL by Christophe Devine.
+ * GPL by Christophe Devine, applies to older version.
  * Modified for md5deep, in public domain.
  * Modified For Vim, Mohsin Ahmed, http://www.cs.albany.edu/~mosh
+ * Mohsin Ahmed states this work is distributed under the VIM License or GPL,
+ * at your choice.
  *
  * Vim specific notes:
  * Functions exported by this file:
diff --git a/src/version.c b/src/version.c
index 7c65bd4..fe31681 100644
--- a/src/version.c
+++ b/src/version.c
@@ -726,6 +726,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    723,
+/**/
     722,
 /**/
     721,
diff --git a/src/xpm_w32.c b/src/xpm_w32.c
index 2ec32ed..7241fb6 100644
--- a/src/xpm_w32.c
+++ b/src/xpm_w32.c
@@ -55,7 +55,7 @@
 	return -1;
     if (shp == NULL)
     {
-        if (img)
+	if (img)
 	    XDestroyImage(img);
 	return -1;
     }
