diff -ur /home/postgres/freebsd_indent/indent.c ./indent.c
--- /home/postgres/freebsd_indent/indent.c	2017-06-13 11:53:59.474524563 -0400
+++ ./indent.c	2017-06-16 15:41:53.515416614 -0400
@@ -1275,7 +1275,7 @@
 
 	CHECK_SIZE_CODE(cur_dec_ind / tabsize);
 	while ((tpos = tabsize * (1 + pos / tabsize)) <= cur_dec_ind) {
-	    *e_code++ = '\t';
+	    *e_code++ = (tpos > pos + 1 || cur_dec_ind >= tpos + tabsize) ? '\t' : ' ';
 	    pos = tpos;
 	}
     }
diff -ur /home/postgres/freebsd_indent/io.c ./io.c
--- /home/postgres/freebsd_indent/io.c	2017-06-13 11:53:59.475524587 -0400
+++ ./io.c	2017-06-16 15:42:47.686762023 -0400
@@ -399,7 +399,7 @@
 	int tcur;
 
 	while ((tcur = tabsize * (1 + (curr - 1) / tabsize) + 1) <= target) {
-	    putc('\t', output);
+	    putc((tcur > curr + 1 || target >= tcur + tabsize) ? '\t' : ' ', output);
 	    curr = tcur;
 	}
     }
