diff --git a/peyotls.cabal b/peyotls.cabal
--- a/peyotls.cabal
+++ b/peyotls.cabal
@@ -2,7 +2,7 @@
 cabal-version:	>= 1.8
 
 name:		peyotls
-version:	0.0.0.16
+version:	0.0.0.17
 stability:	Experimental
 author:		Yoshikuni Jujo <PAF01143@nifty.ne.jp>
 maintainer:	Yoshikuni Jujo <PAF01143@nifty.ne.jp>
@@ -281,7 +281,7 @@
 source-repository	this
     type:	git
     location:	git://github.com/YoshikuniJujo/peyotls.git
-    tag:	peyotls-0.0.0.16
+    tag:	peyotls-0.0.0.17
 
 library
     hs-source-dirs:	src
diff --git a/src/Network/PeyoTLS/Server.hs b/src/Network/PeyoTLS/Server.hs
--- a/src/Network/PeyoTLS/Server.hs
+++ b/src/Network/PeyoTLS/Server.hs
@@ -177,15 +177,28 @@
 		Just cs -> cs; _ -> CipherSuite RSA AES_128_CBC_SHA
 fromClientHello _ _ = error "Server.fromClientHello: bad"
 
+getRenegoInfo :: [Extension] -> Maybe BS.ByteString
+getRenegoInfo [] = Nothing
+getRenegoInfo (ERenegoInfo rn : _) = Just rn
+getRenegoInfo (_ : es) = getRenegoInfo es
+
 clientHello :: (HandleLike h, CPRG g) =>
 	[CipherSuite] -> HandshakeM h g (CipherSuite, BS.ByteString, Version, Bool)
 clientHello cssv = do
-	ch@(ClientHello cv cr _sid cscl cms _e) <- readHandshake
+	cf0 <- getClientFinished
+	ch@(ClientHello cv cr _sid cscl cms me) <- readHandshake
+--	let Just cf = getRenegoInfo me
+--	let rn = True
+	let (cf, rn) = case me of
+		Nothing -> ("", False)
+		Just e -> case getRenegoInfo e of
+			Nothing -> ("", False)
+			Just c -> (c, True)
 	debug "medium" ch
 --	debug "medium" e
 --	let rn = maybe False (ERenegoInfo "" `elem`) e
-	let rn = True
 --	debug "medium" rn
+	unless (cf == cf0) $ E.throwError "clientHello"
 	chk cv cscl cms >> return (merge cssv cscl, cr, cv, rn)
 	where
 	merge sv cl = case find (`elem` cl) sv of
