*** a/doc/src/sgml/ref/createuser.sgml
--- b/doc/src/sgml/ref/createuser.sgml
***************
*** 251,256 **** PostgreSQL documentation
--- 251,279 ----
       </varlistentry>
  
       <varlistentry>
+       <term><option>--replication</></term>
+       <listitem>
+        <para>
+         The new user will be allowed to initiate streaming replication
+         or put the system in and out of backup mode. If neither
+         <option>--replication</> nor <option>--no-replication</>
+         is specified, replication privilege will be granted to
+         only superuser.
+        </para>
+       </listitem>
+      </varlistentry>
+ 
+      <varlistentry>
+       <term><option>--no-replication</></term>
+       <listitem>
+        <para>
+         The new user will not be allowed to initiate streaming replication
+         or put the system in and out of backup mode.
+        </para>
+       </listitem>
+      </varlistentry>
+ 
+      <varlistentry>
         <term><option>-?</></term>
         <term><option>--help</></term>
         <listitem>
*** a/src/bin/scripts/createuser.c
--- b/src/bin/scripts/createuser.c
***************
*** 37,42 **** main(int argc, char *argv[])
--- 37,44 ----
  		{"no-inherit", no_argument, NULL, 'I'},
  		{"login", no_argument, NULL, 'l'},
  		{"no-login", no_argument, NULL, 'L'},
+ 		{"replication", no_argument, NULL, 1},
+ 		{"no-replication", no_argument, NULL, 2},
  		/* adduser is obsolete, undocumented spelling of superuser */
  		{"adduser", no_argument, NULL, 'a'},
  		{"no-adduser", no_argument, NULL, 'A'},
***************
*** 66,71 **** main(int argc, char *argv[])
--- 68,74 ----
  				createrole = TRI_DEFAULT,
  				inherit = TRI_DEFAULT,
  				login = TRI_DEFAULT,
+ 				replication = TRI_DEFAULT,
  				encrypted = TRI_DEFAULT;
  
  	PQExpBufferData sql;
***************
*** 145,150 **** main(int argc, char *argv[])
--- 148,159 ----
  			case 'N':
  				encrypted = TRI_NO;
  				break;
+ 			case 1:
+ 				replication = TRI_YES;
+ 				break;
+ 			case 2:
+ 				replication = TRI_NO;
+ 				break;
  			default:
  				fprintf(stderr, _("Try \"%s --help\" for more information.\n"), progname);
  				exit(1);
***************
*** 271,276 **** main(int argc, char *argv[])
--- 280,289 ----
  		appendPQExpBuffer(&sql, " LOGIN");
  	if (login == TRI_NO)
  		appendPQExpBuffer(&sql, " NOLOGIN");
+ 	if (replication == TRI_YES)
+ 		appendPQExpBuffer(&sql, " REPLICATION");
+ 	if (replication == TRI_NO)
+ 		appendPQExpBuffer(&sql, " NOREPLICATION");
  	if (conn_limit != NULL)
  		appendPQExpBuffer(&sql, " CONNECTION LIMIT %s", conn_limit);
  	appendPQExpBuffer(&sql, ";\n");
***************
*** 316,321 **** help(const char *progname)
--- 329,336 ----
  	printf(_("  -R, --no-createrole       role cannot create roles\n"));
  	printf(_("  -s, --superuser           role will be superuser\n"));
  	printf(_("  -S, --no-superuser        role will not be superuser\n"));
+ 	printf(_("  --replication             role can initiate replication\n"));
+ 	printf(_("  --no-replication          role cannot initiate replication\n"));
  	printf(_("  --help                    show this help, then exit\n"));
  	printf(_("  --version                 output version information, then exit\n"));
  	printf(_("\nConnection options:\n"));
