Peephole constant folding had missed UNARY_POSITIVE.
diff --git a/Lib/test/test_peepholer.py b/Lib/test/test_peepholer.py
index 5696500..9e8bb69 100644
--- a/Lib/test/test_peepholer.py
+++ b/Lib/test/test_peepholer.py
@@ -150,6 +150,7 @@
         for line, elem in (
             ('-0.5', '(-0.5)'),                     # unary negative
             ('~-2', '(1)'),                         # unary invert
+            ('+1', '(1)'),                          # unary positive
         ):
             asm = dis_single(line)
             self.assertTrue(elem in asm, asm)
diff --git a/Misc/NEWS b/Misc/NEWS
index 96ee2ac..8830b7d 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,8 @@
 Core and Builtins
 -----------------
 
+- Peephole constant folding had missed UNARY_POSITIVE.
+
 - Issue #1722344: threading._shutdown() is now called in Py_Finalize(), which
   fixes the problem of some exceptions being thrown at shutdown when the
   interpreter is killed. Patch by Adam Olsen.
diff --git a/Python/peephole.c b/Python/peephole.c
index 9163091..104db8c 100644
--- a/Python/peephole.c
+++ b/Python/peephole.c
@@ -197,6 +197,9 @@
 		case UNARY_INVERT:
 			newconst = PyNumber_Invert(v);
 			break;
+		case UNARY_POSITIVE:
+			newconst = PyNumber_Positive(v);
+			break;
 		default:
 			/* Called with an unknown opcode */
 			PyErr_Format(PyExc_SystemError,
@@ -500,6 +503,7 @@
 				   LOAD_CONST c1  UNARY_OP -->	LOAD_CONST unary_op(c) */
 			case UNARY_NEGATIVE:
 			case UNARY_INVERT:
+			case UNARY_POSITIVE:
 				if (lastlc >= 1	 &&
 				    ISBASICBLOCK(blocks, i-3, 4)  &&
 				    fold_unaryops_on_constants(&codestr[i-3], consts))	{