diff --git a/cli-auth.c b/cli-auth.c
index da0d9d5..59d455b 100644
--- a/cli-auth.c
+++ b/cli-auth.c
@@ -332,12 +332,12 @@
 	char* password = NULL;
 	
 #ifdef DROPBEAR_PASSWORD_ENV
-    /* Password provided in an environment var */
-    password = getenv(DROPBEAR_PASSWORD_ENV);
-    if (password)
-    {
-        return password;
-    }
+	/* Password provided in an environment var */
+	password = getenv(DROPBEAR_PASSWORD_ENV);
+	if (password)
+	{
+		return password;
+	}
 #endif
 
 	password = getpass(prompt);
diff --git a/dropbearkey.c b/dropbearkey.c
index 7eb2f3f..0d13b38 100644
--- a/dropbearkey.c
+++ b/dropbearkey.c
@@ -238,13 +238,13 @@
 		}
 		
 		check_signkey_bits(keytype, bits);;
-    }
+	}
 
 	fprintf(stderr, "Generating key, this may take a while...\n");
-    if (signkey_generate(keytype, bits, filename) == DROPBEAR_FAILURE)
-    {
-    	dropbear_exit("Failed to generate key.\n");
-    }
+	if (signkey_generate(keytype, bits, filename) == DROPBEAR_FAILURE)
+	{
+		dropbear_exit("Failed to generate key.\n");
+	}
 
 	printpubfile(filename);
 
diff --git a/packet.c b/packet.c
index 19b5759..9269e95 100644
--- a/packet.c
+++ b/packet.c
@@ -645,7 +645,7 @@
 			dropbear_exit("HMAC error");
 		}
 	
-        bufsize = MAX_MAC_LEN;
+		bufsize = MAX_MAC_LEN;
 		if (hmac_done(&hmac, output_mac, &bufsize) != CRYPT_OK) {
 			dropbear_exit("HMAC error");
 		}
diff --git a/rsa.c b/rsa.c
index 193e577..1cedbc4 100644
--- a/rsa.c
+++ b/rsa.c
@@ -69,12 +69,12 @@
 	}
 
 	TRACE(("leave buf_get_rsa_pub_key: success"))
-    ret = DROPBEAR_SUCCESS;
+	ret = DROPBEAR_SUCCESS;
 out:
-    if (ret == DROPBEAR_FAILURE) {
-        m_free(key->e);
-        m_free(key->n);
-    }
+	if (ret == DROPBEAR_FAILURE) {
+		m_free(key->e);
+		m_free(key->n);
+	}
 	return ret;
 }
 
diff --git a/signkey.c b/signkey.c
index ac5d887..55f34e7 100644
--- a/signkey.c
+++ b/signkey.c
@@ -317,15 +317,15 @@
 #ifdef DROPBEAR_DSS
 	if (type == DROPBEAR_SIGNKEY_DSS) {
 		buf_put_dss_priv_key(buf, key->dsskey);
-	TRACE(("leave buf_put_priv_key: dss done"))
-	return;
+		TRACE(("leave buf_put_priv_key: dss done"))
+		return;
 	}
 #endif
 #ifdef DROPBEAR_RSA
 	if (type == DROPBEAR_SIGNKEY_RSA) {
 		buf_put_rsa_priv_key(buf, key->rsakey);
-	TRACE(("leave buf_put_priv_key: rsa done"))
-	return;
+		TRACE(("leave buf_put_priv_key: rsa done"))
+		return;
 	}
 #endif
 #ifdef DROPBEAR_ECDSA
