diff --git a/testsuite/tests/simplCore/should_compile/T10602.hs b/testsuite/tests/simplCore/should_compile/T10602.hs
new file mode 100644
index 0000000000000000000000000000000000000000..fc2523d33e5954cca3796ed42ff598b2f837b4b4
--- /dev/null
+++ b/testsuite/tests/simplCore/should_compile/T10602.hs
@@ -0,0 +1,34 @@
+import Control.Monad
+import Data.Binary
+import Data.List
+
+newtype A a = A [a]
+
+instance Binary a => Binary (A a) where
+    put (A xs) = case splitAt 254 xs of
+        (_, []) -> mapM_ put xs
+        (a, b)  -> put (A b)
+
+    get = do xs <- replicateM 254 get
+             A ys <- get
+             return $ A $ xs ++ ys
+
+main :: IO ()
+main = undefined
+
+{-
+This intermittently failed with although I was never able to reliably reproduce,
+
+$ ./inplace/bin/ghc-stage2 -O2 Test.hs -fforce-recomp
+[1 of 1] Compiling Main             ( Test.hs, Test.o )
+ghc-stage2: panic! (the 'impossible' happened)
+  (GHC version 7.10.1.20150708 for x86_64-unknown-linux):
+        Template variable unbound in rewrite rule
+  sg_s5zh
+  [sc_s5zf, sc_s5zg, sg_s5zh, sg_s5zi]
+  [sc_s5zf, sc_s5zg, sg_s5zh, sg_s5zi]
+  [: @ a_a3fv sc_s5zf sc_s5zg]
+  [: @ a_a3fv sc_s5zb sc_s5zc]
+
+Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug
+-}
diff --git a/testsuite/tests/simplCore/should_compile/all.T b/testsuite/tests/simplCore/should_compile/all.T
index 30c63cf17aceb30048d84405a270aad5a0711541..84e9c6ddef83932699c68baf5d4deb0a4f2abf4f 100644
--- a/testsuite/tests/simplCore/should_compile/all.T
+++ b/testsuite/tests/simplCore/should_compile/all.T
@@ -210,3 +210,4 @@ test('T9400', only_ways(['optasm']), compile, ['-O0 -ddump-simpl -dsuppress-uniq
 test('T9583', only_ways(['optasm']), compile, [''])
 test('T9565', only_ways(['optasm']), compile, [''])
 test('T10176', only_ways(['optasm']), compile, [''])
+test('T10602', only_ways(['optasm']), compile, ['-O2'])