diff --git a/configure.ac b/configure.ac
index ec752a410f75c803179158d4d869d2a2c72c54d1..21e42c17cff8b9f62e8f0933d204113f0bb2a118 100644
--- a/configure.ac
+++ b/configure.ac
@@ -133,8 +133,13 @@ fi
 
 AC_ARG_ENABLE(histories,
 AS_HELP_STRING([--disable-histories], [Disable search and position histories]))
-if test "x$enable_histories" = xno; then
-    AC_DEFINE(DISABLE_HISTORIES, 1, [Define this to disable search and position histories.])
+if test "x$enable_tiny" = xyes; then
+    if test "x$enable_histories" != xyes; then
+	enable_histories=no
+    fi
+fi
+if test "x$enable_histories" != xno; then
+    AC_DEFINE(ENABLE_HISTORIES, 1, [Define this to have search and position histories.])
 fi
 
 AC_ARG_ENABLE(justify,
@@ -262,9 +267,6 @@ if test "x$enable_tiny" = xyes; then
     if test "x$enable_extra" != xyes; then
 	AC_DEFINE(DISABLE_EXTRA, 1, [Define this to disable extra stuff.])
     fi
-    if test "x$enable_histories" != xyes; then
-	AC_DEFINE(DISABLE_HISTORIES, 1, [Define this to disable search and position histories.])
-    fi
     if test "x$enable_justify" != xyes; then
 	AC_DEFINE(DISABLE_JUSTIFY, 1, [Define this to disable the justify routines.])
     fi
diff --git a/src/browser.c b/src/browser.c
index cf9e0d1ac7b80eb254071864b879c4b1cf04a1e7..a854a244a7e6b0ac86482aeab1d88bcd342efadf 100644
--- a/src/browser.c
+++ b/src/browser.c
@@ -765,7 +765,7 @@ void do_filesearch(void)
     else
 	last_search = mallocstrcpy(last_search, answer);
 
-#ifndef DISABLE_HISTORIES
+#ifdef ENABLE_HISTORIES
     /* If answer is not empty, add the string to the search history list. */
     if (*answer != '\0')
 	update_history(&search_history, answer);
diff --git a/src/files.c b/src/files.c
index 21485a47dcb3f67286203256ef960ac17a21a908..684f3a74b3009c6b2a9844a8cd3acb8c2dbdb25b 100644
--- a/src/files.c
+++ b/src/files.c
@@ -647,7 +647,7 @@ bool close_buffer(void)
     if (openfile == openfile->next)
 	return FALSE;
 
-#ifndef DISABLE_HISTORIES
+#ifdef ENABLE_HISTORIES
     if (ISSET(POS_HISTORY))
 	update_poshistory(openfile->filename,
 			openfile->current->lineno, xplustabs() + 1);
@@ -1131,7 +1131,7 @@ void do_insertfile(void)
 		 * into the buffer, and add the command to the history list. */
 		if (*answer != '\0') {
 		    execute_command(answer);
-#ifndef DISABLE_HISTORIES
+#ifdef ENABLE_HISTORIES
 		    update_history(&execute_history, answer);
 #endif
 		}
@@ -1159,7 +1159,7 @@ void do_insertfile(void)
 
 #ifdef ENABLE_MULTIBUFFER
 	    if (ISSET(MULTIBUFFER)) {
-#ifndef DISABLE_HISTORIES
+#ifdef ENABLE_HISTORIES
 		if (ISSET(POS_HISTORY)) {
 		    ssize_t priorline, priorcol;
 #ifndef NANO_TINY
@@ -1168,7 +1168,7 @@ void do_insertfile(void)
 		    if (has_old_position(answer, &priorline, &priorcol))
 			do_gotolinecolumn(priorline, priorcol, FALSE, FALSE);
 		}
-#endif /* !DISABLE_HISTORIES */
+#endif /* ENABLE_HISTORIES */
 		/* Update stuff to account for the current buffer. */
 		prepare_for_display();
 	    } else
diff --git a/src/global.c b/src/global.c
index b28b906dd1443a9a36c391708354fbebd97c92b7..53c56fd35107b5ec2dec5385158c94053303ab78 100644
--- a/src/global.c
+++ b/src/global.c
@@ -209,7 +209,7 @@ filestruct *execute_history = NULL;
 	/* The current item in the list of commands that were run with ^R ^X. */
 filestruct *replace_history = NULL;
 	/* The current item in the list of replace strings. */
-#ifndef DISABLE_HISTORIES
+#ifdef ENABLE_HISTORIES
 filestruct *searchtop = NULL;
 	/* The oldest item in the list of search strings. */
 filestruct *searchbot = NULL;
@@ -643,7 +643,7 @@ void shortcut_init(void)
 	N_("Reverse the direction of the search");
     const char *regexp_gist =
 	N_("Toggle the use of regular expressions");
-#ifndef DISABLE_HISTORIES
+#ifdef ENABLE_HISTORIES
     const char *prevhistory_gist =
 	N_("Recall the previous search/replace string");
     const char *nexthistory_gist =
@@ -990,7 +990,7 @@ void shortcut_init(void)
 	N_("Save"), WITHORSANS(savefile_gist), BLANKAFTER, NOVIEW);
 #endif
 
-#ifndef DISABLE_HISTORIES
+#ifdef ENABLE_HISTORIES
     add_to_funcs(get_history_older_void,
 	(MWHEREIS|MREPLACE|MREPLACEWITH|MWHEREISFILE),
 	N_("PrevHstory"), WITHORSANS(prevhistory_gist), TOGETHER, VIEW);
@@ -1283,7 +1283,7 @@ void shortcut_init(void)
 #endif
     add_to_sclist(MWHEREIS, "^T", 0, do_gotolinecolumn_void, 0);
     add_to_sclist(MGOTOLINE, "^T", 0, gototext_void, 0);
-#ifndef DISABLE_HISTORIES
+#ifdef ENABLE_HISTORIES
     add_to_sclist(MWHEREIS|MREPLACE|MREPLACEWITH|MWHEREISFILE|MFINDINHELP|MEXTCMD, "^P", 0, get_history_older_void, 0);
     add_to_sclist(MWHEREIS|MREPLACE|MREPLACEWITH|MWHEREISFILE|MFINDINHELP|MEXTCMD, "^N", 0, get_history_newer_void, 0);
 #ifdef ENABLE_UTF8
@@ -1626,7 +1626,7 @@ sc *strtosc(const char *input)
 	s->scfunc = flip_replace;
     else if (!strcasecmp(input, "gototext"))
 	s->scfunc = gototext_void;
-#ifndef DISABLE_HISTORIES
+#ifdef ENABLE_HISTORIES
     else if (!strcasecmp(input, "prevhistory"))
 	s->scfunc = get_history_older_void;
     else if (!strcasecmp(input, "nexthistory"))
@@ -1849,7 +1849,7 @@ void thanks_for_all_the_fish(void)
 	free(sint);
     }
 #endif /* !DISABLE_COLOR */
-#ifndef DISABLE_HISTORIES
+#ifdef ENABLE_HISTORIES
     /* Free the search and replace history lists. */
     free_filestruct(searchtop);
     free_filestruct(replacetop);
diff --git a/src/history.c b/src/history.c
index 11cf6c20491151fc40c0eb7516214d7dd88746fd..64d9d028e6caf2b3ae5b1dbe6ef9cab070eefacc 100644
--- a/src/history.c
+++ b/src/history.c
@@ -24,7 +24,7 @@
 #include <errno.h>
 #include <string.h>
 
-#ifndef DISABLE_HISTORIES
+#ifdef ENABLE_HISTORIES
 static bool history_changed = FALSE;
 	/* Whether any of the history lists has changed. */
 
@@ -568,4 +568,4 @@ bool has_old_position(const char *file, ssize_t *line, ssize_t *column)
     *column = posptr->xno;
     return TRUE;
 }
-#endif /* !DISABLE_HISTORIES */
+#endif /* ENABLE_HISTORIES */
diff --git a/src/nano.c b/src/nano.c
index b3888d9d4348a50289b4f8b61100985fc56146a0..5260068cd5105ba38e6b45d2c24f432fdf8993f1 100644
--- a/src/nano.c
+++ b/src/nano.c
@@ -564,7 +564,7 @@ void finish(void)
     /* Restore the old terminal settings. */
     tcsetattr(0, TCSANOW, &oldterm);
 
-#ifndef DISABLE_HISTORIES
+#ifdef ENABLE_HISTORIES
     /* If the user wants history persistence, write the relevant files. */
     if (ISSET(HISTORYLOG))
 	save_history();
@@ -807,7 +807,7 @@ void usage(void)
 #ifndef NANO_TINY
     print_opt("-G", "--locking", N_("Use (vim-style) lock files"));
 #endif
-#ifndef DISABLE_HISTORIES
+#ifdef ENABLE_HISTORIES
     if (!ISSET(RESTRICTED))
 	print_opt("-H", "--historylog",
 		N_("Log & read search/replace string history"));
@@ -825,7 +825,7 @@ void usage(void)
 	N_("Don't convert files from DOS/Mac format"));
 #endif
     print_opt("-O", "--morespace", N_("Use one more line for editing"));
-#ifndef DISABLE_HISTORIES
+#ifdef ENABLE_HISTORIES
     if (!ISSET(RESTRICTED))
 	print_opt("-P", "--positionlog",
 		N_("Log & read location of cursor position"));
@@ -939,7 +939,7 @@ void version(void)
 #ifdef ENABLE_HELP
     printf(" --enable-help");
 #endif
-#ifndef DISABLE_HISTORIES
+#ifdef ENABLE_HISTORIES
     printf(" --enable-histories");
 #endif
 #ifndef DISABLE_JUSTIFY
@@ -988,7 +988,7 @@ void version(void)
 #ifndef ENABLE_HELP
     printf(" --disable-help");
 #endif
-#ifdef DISABLE_HISTORIES
+#ifndef ENABLE_HISTORIES
     printf(" --disable-histories");
 #endif
 #ifdef DISABLE_JUSTIFY
@@ -2059,7 +2059,7 @@ int main(int argc, char **argv)
 		SET(LOCKING);
 		break;
 #endif
-#ifndef DISABLE_HISTORIES
+#ifdef ENABLE_HISTORIES
 	    case 'H':
 		SET(HISTORYLOG);
 		break;
@@ -2083,7 +2083,7 @@ int main(int argc, char **argv)
 	    case 'O':
 		SET(MORE_SPACE);
 		break;
-#ifndef DISABLE_HISTORIES
+#ifdef ENABLE_HISTORIES
 	    case 'P':
 		SET(POS_HISTORY);
 		break;
@@ -2354,7 +2354,7 @@ int main(int argc, char **argv)
     if (ISSET(BOLD_TEXT))
 	hilite_attribute = A_BOLD;
 
-#ifndef DISABLE_HISTORIES
+#ifdef ENABLE_HISTORIES
     /* Initialize the pointers for the Search/Replace/Execute histories. */
     history_init();
 
@@ -2373,7 +2373,7 @@ int main(int argc, char **argv)
 	load_history();
     if (ISSET(POS_HISTORY))
 	load_poshistory();
-#endif /* !DISABLE_HISTORIES */
+#endif /* ENABLE_HISTORIES */
 
 #ifndef NANO_TINY
     /* If backups are enabled and a backup directory was specified and
@@ -2567,7 +2567,7 @@ int main(int argc, char **argv)
 	/* If a position was given on the command line, go there. */
 	if (givenline != 0 || givencol != 0)
 	    do_gotolinecolumn(givenline, givencol, FALSE, FALSE);
-#ifndef DISABLE_HISTORIES
+#ifdef ENABLE_HISTORIES
 	else if (ISSET(POS_HISTORY) && openfile->filename[0] != '\0') {
 	    ssize_t savedline, savedcol;
 	    /* If edited before, restore the last cursor position. */
diff --git a/src/nano.h b/src/nano.h
index 3fff840110bece4112bd9bb481677aef190f1c0c..aaec37bd2a58af8f18ca8096112007f0985d821c 100644
--- a/src/nano.h
+++ b/src/nano.h
@@ -343,7 +343,7 @@ typedef struct undo {
 } undo;
 #endif /* !NANO_TINY */
 
-#ifndef DISABLE_HISTORIES
+#ifdef ENABLE_HISTORIES
 typedef struct poshiststruct {
     char *filename;
 	/* The file. */
diff --git a/src/prompt.c b/src/prompt.c
index 8ec0f538dbbc4b5e6202b0cb98ac0ee7ac386bbc..6e6b47b0fb1348530fdc7039af42738cec95e1f6 100644
--- a/src/prompt.c
+++ b/src/prompt.c
@@ -440,7 +440,7 @@ void update_the_statusbar(void)
 /* Get a string of input at the statusbar prompt. */
 functionptrtype acquire_an_answer(int *actual, bool allow_tabs,
 	bool allow_files, bool *listed,
-#ifndef DISABLE_HISTORIES
+#ifdef ENABLE_HISTORIES
 	filestruct **history_list,
 #endif
 	void (*refresh_func)(void))
@@ -452,7 +452,7 @@ functionptrtype acquire_an_answer(int *actual, bool allow_tabs,
     bool tabbed = FALSE;
 	/* Whether we've pressed Tab. */
 #endif
-#ifndef DISABLE_HISTORIES
+#ifdef ENABLE_HISTORIES
     char *history = NULL;
 	/* The current history string. */
     char *magichistory = NULL;
@@ -465,7 +465,7 @@ functionptrtype acquire_an_answer(int *actual, bool allow_tabs,
 	/* The length of the original string that we're trying to
 	 * tab complete, if any. */
 #endif
-#endif /* !DISABLE_HISTORIES */
+#endif /* ENABLE_HISTORIES */
 
     if (statusbar_x > strlen(answer))
 	statusbar_x = strlen(answer);
@@ -480,7 +480,7 @@ functionptrtype acquire_an_answer(int *actual, bool allow_tabs,
 	if (kbinput == KEY_WINCH) {
 	    refresh_func();
 	    *actual = KEY_WINCH;
-#ifndef DISABLE_HISTORIES
+#ifdef ENABLE_HISTORIES
 	    free(magichistory);
 #endif
 	    return NULL;
@@ -497,7 +497,7 @@ functionptrtype acquire_an_answer(int *actual, bool allow_tabs,
 	    tabbed = FALSE;
 
 	if (func == do_tab) {
-#ifndef DISABLE_HISTORIES
+#ifdef ENABLE_HISTORIES
 	    if (history_list != NULL) {
 		if (last_kbinput != the_code_for(do_tab, TAB_CODE))
 		    complete_len = strlen(answer);
@@ -514,7 +514,7 @@ functionptrtype acquire_an_answer(int *actual, bool allow_tabs,
 					&tabbed, refresh_func, listed);
 	} else
 #endif /* ENABLE_TABCOMP */
-#ifndef DISABLE_HISTORIES
+#ifdef ENABLE_HISTORIES
 	if (func == get_history_older_void) {
 	    if (history_list != NULL) {
 		/* If we're scrolling up at the bottom of the history list
@@ -560,7 +560,7 @@ functionptrtype acquire_an_answer(int *actual, bool allow_tabs,
 		finished = FALSE;
 	    }
 	} else
-#endif /* !DISABLE_HISTORIES */
+#endif /* ENABLE_HISTORIES */
 	if (func == do_help_void) {
 	    /* This key has a shortcut-list entry when it's used to go to
 	     * the help browser or display a message indicating that help
@@ -577,12 +577,12 @@ functionptrtype acquire_an_answer(int *actual, bool allow_tabs,
 
 	update_the_statusbar();
 
-#if !defined(DISABLE_HISTORIES) && defined(ENABLE_TABCOMP)
+#if defined(ENABLE_HISTORIES) && defined(ENABLE_TABCOMP)
 	last_kbinput = kbinput;
 #endif
     }
 
-#ifndef DISABLE_HISTORIES
+#ifdef ENABLE_HISTORIES
     /* Set the current position in the history list to the bottom. */
     if (history_list != NULL) {
 	history_reset(*history_list);
@@ -633,7 +633,7 @@ int do_prompt(bool allow_tabs, bool allow_files,
     prompt[actual_x(prompt, (COLS < 5) ? 0 : COLS - 5)] = '\0';
 
     func = acquire_an_answer(&retval, allow_tabs, allow_files, &listed,
-#ifndef DISABLE_HISTORIES
+#ifdef ENABLE_HISTORIES
 			history_list,
 #endif
 			refresh_func);
diff --git a/src/proto.h b/src/proto.h
index 4d71cb95c739e28e4fcff87f0bafca25aa703934..2ae1e79ad248e1a7cbcee1ddfcf4aa7672fd5654 100644
--- a/src/proto.h
+++ b/src/proto.h
@@ -161,7 +161,7 @@ extern subnfunc *uncutfunc;
 extern filestruct *search_history;
 extern filestruct *replace_history;
 extern filestruct *execute_history;
-#ifndef DISABLE_HISTORIES
+#ifdef ENABLE_HISTORIES
 extern filestruct *searchtop;
 extern filestruct *searchbot;
 extern filestruct *replacetop;
@@ -353,7 +353,7 @@ size_t help_line_len(const char *ptr);
 void do_help_void(void);
 
 /* Most functions in history.c. */
-#ifndef DISABLE_HISTORIES
+#ifdef ENABLE_HISTORIES
 void history_init(void);
 void history_reset(const filestruct *h);
 void update_history(filestruct **h, const char *s);
diff --git a/src/rcfile.c b/src/rcfile.c
index 2988d4fc7642349654fd465d5b73f5716ad47afa..c244d961601daf1b89db88e599ae14f5e0ffeea3 100644
--- a/src/rcfile.c
+++ b/src/rcfile.c
@@ -47,7 +47,7 @@ static const rcoption rcopts[] = {
 #ifndef DISABLE_WRAPJUSTIFY
     {"fill", 0},
 #endif
-#ifndef DISABLE_HISTORIES
+#ifdef ENABLE_HISTORIES
     {"historylog", HISTORYLOG},
 #endif
     {"morespace", MORE_SPACE},
@@ -66,7 +66,7 @@ static const rcoption rcopts[] = {
 #ifndef DISABLE_OPERATINGDIR
     {"operatingdir", 0},
 #endif
-#ifndef DISABLE_HISTORIES
+#ifdef ENABLE_HISTORIES
     {"poslog", POS_HISTORY},  /* deprecated form, remove in 2018 */
     {"positionlog", POS_HISTORY},
 #endif
@@ -162,7 +162,7 @@ void rcfile_error(const char *msg, ...)
 }
 #endif /* ENABLE_NANORC */
 
-#if defined(ENABLE_NANORC) || !defined(DISABLE_HISTORIES)
+#if defined(ENABLE_NANORC) || defined(ENABLE_HISTORIES)
 /* Parse the next word from the string, null-terminate it, and return
  * a pointer to the first character after the null terminator.  The
  * returned pointer will point to '\0' if we hit the end of the line. */
@@ -182,7 +182,7 @@ char *parse_next_word(char *ptr)
 
     return ptr;
 }
-#endif /* ENABLE_NANORC || !DISABLE_HISTORIES */
+#endif /* ENABLE_NANORC || ENABLE_HISTORIES */
 
 #ifdef ENABLE_NANORC
 /* Parse an argument, with optional quotes, after a keyword that takes
diff --git a/src/search.c b/src/search.c
index 4e59b6494a0ea5579ea19492cb2a132aebef3f45..5ce07f2b547f513edfeded0ef464bf4cefd8d0a9 100644
--- a/src/search.c
+++ b/src/search.c
@@ -162,7 +162,7 @@ int search_init(bool replacing, bool use_answer)
 	/* If an answer was given, remember it. */
 	if (*answer != '\0') {
 	    last_search = mallocstrcpy(last_search, answer);
-#ifndef DISABLE_HISTORIES
+#ifdef ENABLE_HISTORIES
 	    update_history(&search_history, answer);
 #endif
 	}
@@ -403,7 +403,7 @@ void do_findnext(void)
 /* Search for the last string without prompting. */
 void do_research(void)
 {
-#ifndef DISABLE_HISTORIES
+#ifdef ENABLE_HISTORIES
     /* If nothing was searched for yet during this run of nano, but
      * there is a search history, take the most recent item. */
     if (*last_search == '\0' && searchbot->prev != NULL)
@@ -748,7 +748,7 @@ void do_replace(void)
 		/* TRANSLATORS: This is a prompt. */
 		edit_refresh, _("Replace with"));
 
-#ifndef DISABLE_HISTORIES
+#ifdef ENABLE_HISTORIES
     /* If the replace string is not "", add it to the replace history list. */
     if (i == 0)
 	update_history(&replace_history, answer);