diff --git a/js/reveal.js b/js/reveal.js
index 8c0889b038166cae87983bfec2635830601af285..1ff0dcbc3a59c1fd452a9719a839188df657c053 100644
--- a/js/reveal.js
+++ b/js/reveal.js
@@ -3909,7 +3909,7 @@
 
 		// Returns true if we're currently on the first slide
 		isFirstSlide: function() {
-			return document.querySelector( SLIDES_SELECTOR + '.past' ) == null ? true : false;
+			return ( indexh === 0 && indexv === 0 );
 		},
 
 		// Returns true if we're currently on the last slide
diff --git a/test/test.js b/test/test.js
index 00f9080978f01a2c25ba1719dac037d35fe5ec5f..6c7270f291aafd2a943a07ab7e76152f345885f1 100644
--- a/test/test.js
+++ b/test/test.js
@@ -68,6 +68,12 @@ Reveal.addEventListener( 'ready', function() {
 		strictEqual( Reveal.isFirstSlide(), true, 'true after Reveal.slide( 0, 0 )' );
 	});
 
+	test( 'Reveal.isFirstSlide after vertical slide', function() {
+		Reveal.slide( 1, 1 );
+		Reveal.slide( 0, 0 );
+		strictEqual( Reveal.isFirstSlide(), true, 'true after Reveal.slide( 1, 1 ) and then Reveal.slide( 0, 0 )' );
+	});
+
 	test( 'Reveal.isLastSlide', function() {
 		Reveal.slide( 0, 0 );
 		strictEqual( Reveal.isLastSlide(), false, 'false after Reveal.slide( 0, 0 )' );
@@ -75,12 +81,20 @@ Reveal.addEventListener( 'ready', function() {
 		var lastSlideIndex = document.querySelectorAll( '.reveal .slides>section' ).length - 1;
 
 		Reveal.slide( lastSlideIndex, 0 );
-		strictEqual( Reveal.isLastSlide(), true, 'true after Reveal.slide( ', 0+ lastSlideIndex +' )' );
+		strictEqual( Reveal.isLastSlide(), true, 'true after Reveal.slide( '+ lastSlideIndex +', 0 )' );
 
 		Reveal.slide( 0, 0 );
 		strictEqual( Reveal.isLastSlide(), false, 'false after Reveal.slide( 0, 0 )' );
 	});
 
+	test( 'Reveal.isLastSlide after vertical slide', function() {
+		var lastSlideIndex = document.querySelectorAll( '.reveal .slides>section' ).length - 1;
+		
+		Reveal.slide( 1, 1 );
+		Reveal.slide( lastSlideIndex );
+		strictEqual( Reveal.isLastSlide(), true, 'true after Reveal.slide( 1, 1 ) and then Reveal.slide( '+ lastSlideIndex +', 0 )' );
+	});
+
 	test( 'Reveal.getTotalSlides', function() {
 		strictEqual( Reveal.getTotalSlides(), 8, 'eight slides in total' );
 	});