diff --git a/Makefile.am b/Makefile.am
index c81b5bb35cf4ef3710ce219a394e5e3469c6f3a2..1605e2bfd1bed5a2c9bab76576fe8833823ea5ad 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -158,6 +158,7 @@ EXTRA_DIST += \
 	extras/package/macosx/Resources/English.lproj/StreamOutput.xib \
 	extras/package/macosx/Resources/English.lproj/SyncTracks.xib \
 	extras/package/macosx/Resources/English.lproj/TextfieldPanel.xib \
+	extras/package/macosx/Resources/English.lproj/TimeSelectionPanel.xib \
 	extras/package/macosx/Resources/English.lproj/VideoEffects.xib \
 	extras/package/macosx/Resources/fspanel/fs_background.png \
 	extras/package/macosx/Resources/fspanel/fs_background@2x.png \
diff --git a/extras/package/macosx/Resources/English.lproj/MainMenu.xib b/extras/package/macosx/Resources/English.lproj/MainMenu.xib
index 4de41bf63ed4bac4c4f61d04b81481c49d6dc663..74c921db17ec14b7f93934a9dec47cee03f8b064 100644
--- a/extras/package/macosx/Resources/English.lproj/MainMenu.xib
+++ b/extras/package/macosx/Resources/English.lproj/MainMenu.xib
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="8152.3" systemVersion="14F6a" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="7706" systemVersion="14F25a" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">
     <dependencies>
         <deployment version="1070" identifier="macosx"/>
         <development version="5100" identifier="xcode"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="8152.3"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="7706"/>
     </dependencies>
     <objects>
         <customObject id="-2" userLabel="File's Owner" customClass="VLCMainMenu">
@@ -115,13 +115,6 @@
                 <outlet property="services" destination="1996" id="X3H-XI-xFK"/>
                 <outlet property="show_all" destination="150" id="XQ2-CW-0PI"/>
                 <outlet property="snapshot" destination="2249" id="6bO-HY-I3I"/>
-                <outlet property="specificTimeWindow" destination="Fqe-af-Tt9" id="wdd-qG-8FK"/>
-                <outlet property="specificTime_cancelButton" destination="C7h-06-Udn" id="X0U-Up-nHP"/>
-                <outlet property="specificTime_enterTextField" destination="ovY-qj-fWV" id="fir-sD-ubg"/>
-                <outlet property="specificTime_goToLabel" destination="bB6-Le-Ilg" id="WU8-SI-OLZ"/>
-                <outlet property="specificTime_okButton" destination="zrN-B3-Ede" id="CxC-B6-ZPs"/>
-                <outlet property="specificTime_secLabel" destination="oMI-0n-rej" id="wHN-JG-amG"/>
-                <outlet property="specificTime_stepper" destination="zsp-zD-QHr" id="xyb-Nm-5v4"/>
                 <outlet property="stop" destination="5156" id="irh-Cr-vBT"/>
                 <outlet property="subtitle_bgcolor" destination="5581" id="moz-G5-DBl"/>
                 <outlet property="subtitle_bgcolorMenu" destination="5582" id="gPd-5S-3xK"/>
@@ -178,7 +171,7 @@
             </connections>
         </customObject>
         <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
-        <customObject id="-3" userLabel="Application">
+        <customObject id="-3" userLabel="Application" customClass="NSObject">
             <connections>
                 <outlet property="dockMenu" destination="1617" id="hLP-Rj-RIm"/>
             </connections>
@@ -718,8 +711,8 @@
                                     <action selector="performMiniaturize:" target="-1" id="5608"/>
                                 </connections>
                             </menuItem>
-                            <menuItem title="Zoom" id="5603">
-                                <modifierMask key="keyEquivalentModifierMask"/>
+                            <menuItem title="Zoom" keyEquivalent="z" id="5603">
+                                <modifierMask key="keyEquivalentModifierMask" shift="YES" command="YES"/>
                                 <connections>
                                     <action selector="performZoom:" target="-1" id="5605"/>
                                 </connections>
@@ -1037,78 +1030,6 @@
                 </textField>
             </subviews>
         </customView>
-        <window title="GoTo Specific Time" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" animationBehavior="default" id="Fqe-af-Tt9" userLabel="GoToTime">
-            <windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
-            <windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
-            <rect key="contentRect" x="429" y="553" width="249" height="103"/>
-            <rect key="screenRect" x="0.0" y="0.0" width="2560" height="1417"/>
-            <view key="contentView" id="NrR-3A-NOR">
-                <rect key="frame" x="0.0" y="0.0" width="249" height="103"/>
-                <autoresizingMask key="autoresizingMask"/>
-                <subviews>
-                    <textField verticalHuggingPriority="750" id="bB6-Le-Ilg">
-                        <rect key="frame" x="-3" y="79" width="240" height="17"/>
-                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
-                        <textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="center" title="Go to specific position" id="vXn-nw-Nrc">
-                            <font key="font" metaFont="systemBold"/>
-                            <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
-                            <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
-                        </textFieldCell>
-                    </textField>
-                    <textField verticalHuggingPriority="750" id="ovY-qj-fWV">
-                        <rect key="frame" x="20" y="52" width="159" height="19"/>
-                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
-                        <textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" alignment="right" title="0" drawsBackground="YES" id="qZx-Li-5O2">
-                            <font key="font" metaFont="smallSystem"/>
-                            <color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
-                            <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
-                        </textFieldCell>
-                        <connections>
-                            <binding destination="-2" name="value" keyPath="self.jumpTimeValue" id="inq-IT-YNl"/>
-                        </connections>
-                    </textField>
-                    <button verticalHuggingPriority="750" id="zrN-B3-Ede">
-                        <rect key="frame" x="150" y="13" width="84" height="28"/>
-                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
-                        <buttonCell key="cell" type="push" title="OK" bezelStyle="rounded" alignment="center" controlSize="small" borderStyle="border" inset="2" id="icy-jS-WFH">
-                            <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                            <font key="font" metaFont="smallSystem"/>
-                            <string key="keyEquivalent" base64-UTF8="YES">
-DQ
-</string>
-                        </buttonCell>
-                    </button>
-                    <stepper horizontalHuggingPriority="750" verticalHuggingPriority="750" id="zsp-zD-QHr">
-                        <rect key="frame" x="185" y="50" width="15" height="22"/>
-                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
-                        <stepperCell key="cell" controlSize="small" continuous="YES" alignment="left" increment="10" maxValue="30000" valueWraps="YES" id="8Ok-J5-Vfx"/>
-                        <connections>
-                            <binding destination="-2" name="value" keyPath="self.jumpTimeValue" id="s1u-0J-RJh"/>
-                        </connections>
-                    </stepper>
-                    <button verticalHuggingPriority="750" id="C7h-06-Udn">
-                        <rect key="frame" x="68" y="13" width="84" height="28"/>
-                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
-                        <buttonCell key="cell" type="push" title="Cancel" bezelStyle="rounded" alignment="center" controlSize="small" borderStyle="border" inset="2" id="fXt-nh-exA">
-                            <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                            <font key="font" metaFont="smallSystem"/>
-                            <string key="keyEquivalent" base64-UTF8="YES">
-Gw
-</string>
-                        </buttonCell>
-                    </button>
-                    <textField verticalHuggingPriority="750" id="oMI-0n-rej">
-                        <rect key="frame" x="203" y="54" width="34" height="14"/>
-                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
-                        <textFieldCell key="cell" sendsActionOnEndEditing="YES" title="sec." id="74c-xI-3AS">
-                            <font key="font" metaFont="smallSystem"/>
-                            <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
-                            <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
-                        </textFieldCell>
-                    </textField>
-                </subviews>
-            </view>
-        </window>
         <userDefaultsController representsSharedInstance="YES" id="uFO-sP-uo6"/>
     </objects>
 </document>
diff --git a/extras/package/macosx/Resources/English.lproj/TimeSelectionPanel.xib b/extras/package/macosx/Resources/English.lproj/TimeSelectionPanel.xib
new file mode 100644
index 0000000000000000000000000000000000000000..812b4a29a553408188e2b216e8d4f124b3347267
--- /dev/null
+++ b/extras/package/macosx/Resources/English.lproj/TimeSelectionPanel.xib
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="7706" systemVersion="14F25a" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">
+    <dependencies>
+        <deployment version="1070" identifier="macosx"/>
+        <development version="5100" identifier="xcode"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="7706"/>
+    </dependencies>
+    <objects>
+        <customObject id="-2" userLabel="File's Owner" customClass="VLCTimeSelectionPanelController">
+            <connections>
+                <outlet property="cancelButton" destination="C7h-06-Udn" id="vms-H9-Fs6"/>
+                <outlet property="goToLabel" destination="bB6-Le-Ilg" id="Psy-fF-eTf"/>
+                <outlet property="okButton" destination="zrN-B3-Ede" id="TzS-HN-YE3"/>
+                <outlet property="secsLabel" destination="oMI-0n-rej" id="Heh-nH-7Dv"/>
+                <outlet property="stepper" destination="zsp-zD-QHr" id="yab-Mp-27O"/>
+                <outlet property="textField" destination="ovY-qj-fWV" id="NtQ-WV-2da"/>
+                <outlet property="window" destination="Fqe-af-Tt9" id="u4H-rX-p0W"/>
+            </connections>
+        </customObject>
+        <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
+        <customObject id="-3" userLabel="Application" customClass="NSObject"/>
+        <window title="GoTo Specific Time" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" animationBehavior="default" id="Fqe-af-Tt9" userLabel="GoToTime">
+            <windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
+            <windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
+            <rect key="contentRect" x="429" y="553" width="249" height="103"/>
+            <rect key="screenRect" x="0.0" y="0.0" width="2560" height="1417"/>
+            <view key="contentView" id="NrR-3A-NOR">
+                <rect key="frame" x="0.0" y="0.0" width="249" height="103"/>
+                <autoresizingMask key="autoresizingMask"/>
+                <subviews>
+                    <textField verticalHuggingPriority="750" id="bB6-Le-Ilg">
+                        <rect key="frame" x="-3" y="79" width="240" height="17"/>
+                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+                        <textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="center" title="Go to specific position" id="vXn-nw-Nrc">
+                            <font key="font" metaFont="systemBold"/>
+                            <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
+                            <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
+                        </textFieldCell>
+                    </textField>
+                    <textField verticalHuggingPriority="750" id="ovY-qj-fWV">
+                        <rect key="frame" x="20" y="52" width="159" height="19"/>
+                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+                        <textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" alignment="right" title="0" drawsBackground="YES" id="qZx-Li-5O2">
+                            <font key="font" metaFont="smallSystem"/>
+                            <color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
+                            <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+                        </textFieldCell>
+                        <connections>
+                            <binding destination="-2" name="value" keyPath="self.jumpTimeValue" id="xWJ-vG-f9H"/>
+                        </connections>
+                    </textField>
+                    <button verticalHuggingPriority="750" id="zrN-B3-Ede">
+                        <rect key="frame" x="150" y="13" width="84" height="28"/>
+                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+                        <buttonCell key="cell" type="push" title="OK" bezelStyle="rounded" alignment="center" controlSize="small" borderStyle="border" inset="2" id="icy-jS-WFH">
+                            <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+                            <font key="font" metaFont="smallSystem"/>
+                            <string key="keyEquivalent" base64-UTF8="YES">
+DQ
+</string>
+                        </buttonCell>
+                        <connections>
+                            <action selector="buttonPressed:" target="-2" id="0qF-5H-5Fz"/>
+                        </connections>
+                    </button>
+                    <stepper horizontalHuggingPriority="750" verticalHuggingPriority="750" id="zsp-zD-QHr">
+                        <rect key="frame" x="185" y="50" width="15" height="22"/>
+                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+                        <stepperCell key="cell" controlSize="small" continuous="YES" alignment="left" increment="10" maxValue="30000" valueWraps="YES" id="8Ok-J5-Vfx"/>
+                        <connections>
+                            <binding destination="-2" name="value" keyPath="self.jumpTimeValue" id="ade-2M-vOh"/>
+                        </connections>
+                    </stepper>
+                    <button verticalHuggingPriority="750" id="C7h-06-Udn">
+                        <rect key="frame" x="68" y="13" width="84" height="28"/>
+                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+                        <buttonCell key="cell" type="push" title="Cancel" bezelStyle="rounded" alignment="center" controlSize="small" borderStyle="border" inset="2" id="fXt-nh-exA">
+                            <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+                            <font key="font" metaFont="smallSystem"/>
+                            <string key="keyEquivalent" base64-UTF8="YES">
+Gw
+</string>
+                        </buttonCell>
+                        <connections>
+                            <action selector="buttonPressed:" target="-2" id="Ad9-7v-03L"/>
+                        </connections>
+                    </button>
+                    <textField verticalHuggingPriority="750" id="oMI-0n-rej">
+                        <rect key="frame" x="203" y="54" width="34" height="14"/>
+                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+                        <textFieldCell key="cell" sendsActionOnEndEditing="YES" title="sec." id="74c-xI-3AS">
+                            <font key="font" metaFont="smallSystem"/>
+                            <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
+                            <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
+                        </textFieldCell>
+                    </textField>
+                </subviews>
+            </view>
+        </window>
+    </objects>
+</document>
diff --git a/extras/package/macosx/vlc.xcodeproj/project.pbxproj b/extras/package/macosx/vlc.xcodeproj/project.pbxproj
index 6e904e981574da257f85841b4c15ae506a620826..05d668e7cddef413a725d2fab8decf35a48f585b 100644
--- a/extras/package/macosx/vlc.xcodeproj/project.pbxproj
+++ b/extras/package/macosx/vlc.xcodeproj/project.pbxproj
@@ -24,6 +24,7 @@
 /* Begin PBXBuildFile section */
 		1C15C7DC1B5146DB003AB729 /* ResumeDialogController.h in Sources */ = {isa = PBXBuildFile; fileRef = 633121CA1B51122700E636DA /* ResumeDialogController.h */; };
 		1C15C7DD1B5146DB003AB729 /* ResumeDialogController.m in Sources */ = {isa = PBXBuildFile; fileRef = 633121CB1B51122700E636DA /* ResumeDialogController.m */; };
+		1C51BDE51B7A221B0056B9AA /* TimeSelectionPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1C51BDE31B7A221B0056B9AA /* TimeSelectionPanel.xib */; };
 		1C57690E19DC93620099F5A6 /* topbar_background.png in Resources */ = {isa = PBXBuildFile; fileRef = 1C57690D19DC93620099F5A6 /* topbar_background.png */; };
 		1C88BA5419DC7B2200645190 /* yosemite-window-close-graphite.png in Resources */ = {isa = PBXBuildFile; fileRef = 1C88BA2419DC7B2200645190 /* yosemite-window-close-graphite.png */; };
 		1C88BA5519DC7B2200645190 /* yosemite-window-close-graphite@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1C88BA2519DC7B2200645190 /* yosemite-window-close-graphite@2x.png */; };
@@ -451,6 +452,7 @@
 		1CCB5FAA1A62A724004C3E90 /* SPInvocationGrabbing.m in Sources */ = {isa = PBXBuildFile; fileRef = CCF0777A13659A8000AF19FD /* SPInvocationGrabbing.m */; };
 		1CCB5FAB1A62A724004C3E90 /* SPMediaKeyTap.h in Sources */ = {isa = PBXBuildFile; fileRef = CCF0777B13659A8000AF19FD /* SPMediaKeyTap.h */; };
 		1CCB5FAC1A62A724004C3E90 /* SPMediaKeyTap.m in Sources */ = {isa = PBXBuildFile; fileRef = CCF0777C13659A8000AF19FD /* SPMediaKeyTap.m */; };
+		1CD3667B1B7A242E0054E39F /* VLCTimeSelectionPanelController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CD3667A1B7A242E0054E39F /* VLCTimeSelectionPanelController.m */; };
 		1CE5ED2119DD6AB700FCEFD3 /* lion-window-fullscreen-on.png in Resources */ = {isa = PBXBuildFile; fileRef = 1CE5ED1B19DD6AB700FCEFD3 /* lion-window-fullscreen-on.png */; };
 		1CE5ED2219DD6AB700FCEFD3 /* lion-window-fullscreen-on@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1CE5ED1C19DD6AB700FCEFD3 /* lion-window-fullscreen-on@2x.png */; };
 		1CE5ED2319DD6AB700FCEFD3 /* lion-window-fullscreen-over.png in Resources */ = {isa = PBXBuildFile; fileRef = 1CE5ED1D19DD6AB700FCEFD3 /* lion-window-fullscreen-over.png */; };
@@ -879,6 +881,7 @@
 		1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
 		1C3AABAC1B1BAE7B00FDF001 /* VLC.app */ = {isa = PBXFileReference; lastKnownFileType = wrapper.application; name = VLC.app; path = ../VLC.app; sourceTree = BUILT_PRODUCTS_DIR; };
 		1C3AABB01B1BB00A00FDF001 /* VLC-dev.app */ = {isa = PBXFileReference; lastKnownFileType = wrapper.application; name = "VLC-dev.app"; path = "../VLC-dev.app"; sourceTree = BUILT_PRODUCTS_DIR; };
+		1C51BDE41B7A221B0056B9AA /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = Resources/English.lproj/TimeSelectionPanel.xib; sourceTree = "<group>"; };
 		1C57690D19DC93620099F5A6 /* topbar_background.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = topbar_background.png; path = Resources/mainwindow/topbar_background.png; sourceTree = "<group>"; };
 		1C88BA2419DC7B2200645190 /* yosemite-window-close-graphite.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "yosemite-window-close-graphite.png"; sourceTree = "<group>"; };
 		1C88BA2519DC7B2200645190 /* yosemite-window-close-graphite@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "yosemite-window-close-graphite@2x.png"; sourceTree = "<group>"; };
@@ -1219,6 +1222,8 @@
 		1CBB2CC71B06A6DE00110ADA /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = Resources/English.lproj/Help.xib; sourceTree = "<group>"; };
 		1CC25CA71B2C585D0003F994 /* darwinvlc.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = darwinvlc.m; path = ../../../bin/darwinvlc.m; sourceTree = "<group>"; };
 		1CCB5F2F1A62A6A5004C3E90 /* pseudo-vlc.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "pseudo-vlc.app"; sourceTree = BUILT_PRODUCTS_DIR; };
+		1CD366791B7A242E0054E39F /* VLCTimeSelectionPanelController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCTimeSelectionPanelController.h; path = ../../../modules/gui/macosx/VLCTimeSelectionPanelController.h; sourceTree = "<group>"; };
+		1CD3667A1B7A242E0054E39F /* VLCTimeSelectionPanelController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCTimeSelectionPanelController.m; path = ../../../modules/gui/macosx/VLCTimeSelectionPanelController.m; sourceTree = "<group>"; };
 		1CE5ED1B19DD6AB700FCEFD3 /* lion-window-fullscreen-on.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "lion-window-fullscreen-on.png"; sourceTree = "<group>"; };
 		1CE5ED1C19DD6AB700FCEFD3 /* lion-window-fullscreen-on@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "lion-window-fullscreen-on@2x.png"; sourceTree = "<group>"; };
 		1CE5ED1D19DD6AB700FCEFD3 /* lion-window-fullscreen-over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "lion-window-fullscreen-over.png"; sourceTree = "<group>"; };
@@ -1890,6 +1895,8 @@
 				CCCE366E13817E4500694F2A /* VideoEffects.m */,
 				CCCCDCA01413E1C000FE3DE1 /* VideoView.h */,
 				CCCCDCA11413E1C000FE3DE1 /* VideoView.m */,
+				1CD366791B7A242E0054E39F /* VLCTimeSelectionPanelController.h */,
+				1CD3667A1B7A242E0054E39F /* VLCTimeSelectionPanelController.m */,
 				5CCED71414C0D4A90057F8D1 /* VLCUIWidgets.h */,
 				5CCED71514C0D4A90057F8D1 /* VLCUIWidgets.m */,
 				E0C2583E161B593D00185AAD /* VLCVoutWindowController.h */,
@@ -2901,6 +2908,7 @@
 				633121CE1B5112C300E636DA /* ResumeDialog.xib */,
 				1C9465971B77B9FC007C965A /* PopupPanel.xib */,
 				1C9465991B77B9FC007C965A /* TextfieldPanel.xib */,
+				1C51BDE31B7A221B0056B9AA /* TimeSelectionPanel.xib */,
 				7D8BB0B51830311300FAE9B7 /* DebugMessageVisualizer.xib */,
 				7D8BB0B81830367200FAE9B7 /* PlaylistMenu.xib */,
 				7D8BB0BE1830393300FAE9B7 /* MainWindow.xib */,
@@ -3172,6 +3180,7 @@
 				CC04332213B28B2900D7D52E /* fs_time_slider_knob.png in Resources */,
 				1C88BC0919DC7C8100645190 /* ys-fullscreen-one-button_dark.png in Resources */,
 				CC04332313B28B2900D7D52E /* fs_time_slider.png in Resources */,
+				1C51BDE51B7A221B0056B9AA /* TimeSelectionPanel.xib in Resources */,
 				1C88BA5F19DC7B2200645190 /* yosemite-window-close@2x.png in Resources */,
 				CC04332413B28B2900D7D52E /* fs_volume_max_highlight.png in Resources */,
 				1C88BBFA19DC7C8100645190 /* ys-effects-one-button_dark@2x.png in Resources */,
@@ -3875,6 +3884,7 @@
 				1CCB5F701A62A724004C3E90 /* fspanel.h in Sources */,
 				1CCB5F711A62A724004C3E90 /* fspanel.m in Sources */,
 				1CCB5F721A62A724004C3E90 /* intf.h in Sources */,
+				1CD3667B1B7A242E0054E39F /* VLCTimeSelectionPanelController.m in Sources */,
 				1CCB5F731A62A724004C3E90 /* intf.m in Sources */,
 				1CCB5F741A62A724004C3E90 /* macosx.m in Sources */,
 				1CCB5F751A62A724004C3E90 /* MainMenu.h in Sources */,
@@ -3946,6 +3956,14 @@
 /* End PBXTargetDependency section */
 
 /* Begin PBXVariantGroup section */
+		1C51BDE31B7A221B0056B9AA /* TimeSelectionPanel.xib */ = {
+			isa = PBXVariantGroup;
+			children = (
+				1C51BDE41B7A221B0056B9AA /* English */,
+			);
+			name = TimeSelectionPanel.xib;
+			sourceTree = "<group>";
+		};
 		1C9465971B77B9FC007C965A /* PopupPanel.xib */ = {
 			isa = PBXVariantGroup;
 			children = (
diff --git a/modules/gui/macosx/MainMenu.h b/modules/gui/macosx/MainMenu.h
index e2973e5356d03a82b3f997ec0e5f72ae1c6c3363..1c9fbbab0775eaaeeae8e11385166caf5fce96d2 100644
--- a/modules/gui/macosx/MainMenu.h
+++ b/modules/gui/macosx/MainMenu.h
@@ -202,15 +202,6 @@
 @property (readwrite, weak) IBOutlet NSMenuItem *voutMenufullscreen;
 @property (readwrite, weak) IBOutlet NSMenuItem *voutMenusnapshot;
 
-@property (readwrite, weak) IBOutlet NSButton *specificTime_cancelButton;
-@property (readwrite, weak) IBOutlet NSTextField *specificTime_enterTextField;
-@property (readwrite, weak) IBOutlet NSTextField *specificTime_goToLabel;
-@property (readwrite, weak) IBOutlet NSButton *specificTime_okButton;
-@property (readwrite, weak) IBOutlet NSWindow *specificTimeWindow;
-@property (readwrite, weak) IBOutlet NSTextField *specificTime_secLabel;
-@property (readwrite, weak) IBOutlet NSStepper *specificTime_stepper;
-@property (nonatomic) int jumpTimeValue;
-
 @property (readwrite, weak) IBOutlet NSView *playlistSaveAccessoryView;
 @property (readwrite, weak) IBOutlet NSPopUpButton *playlistSaveAccessoryPopup;
 @property (readwrite, weak) IBOutlet NSTextField *playlistSaveAccessoryText;
diff --git a/modules/gui/macosx/MainMenu.m b/modules/gui/macosx/MainMenu.m
index 2f3400a88f20fd025eb2ba4530a69e2fc95ca2a7..fcf1f6f797521826d6a03131e411128e4b3c8980 100644
--- a/modules/gui/macosx/MainMenu.m
+++ b/modules/gui/macosx/MainMenu.m
@@ -46,6 +46,7 @@
 #import "ConvertAndSave.h"
 #import "DebugMessageVisualizer.h"
 #import "AddonsWindowController.h"
+#import "VLCTimeSelectionPanelController.h"
 
 #ifdef HAVE_SPARKLE
 #import <Sparkle/Sparkle.h>
@@ -66,6 +67,9 @@
     NSArray *_menuOrderOfPlaylistTableColumns;
 
     NSMenu *_playlistTableColumnsContextMenu;
+
+    __strong VLCTimeSelectionPanelController *_timeSelectionPanel;
+
 }
 @end
 
@@ -82,6 +86,8 @@
 
 - (void)awakeFromNib
 {
+    _timeSelectionPanel = [[VLCTimeSelectionPanelController alloc] init];
+
     /* check whether the user runs OSX with a RTL language */
     NSArray* languages = [NSLocale preferredLanguages];
     NSString* preferredLanguage = [languages firstObject];
@@ -487,12 +493,6 @@
     [_voutMenumute setTitle: _NS("Mute")];
     [_voutMenufullscreen setTitle: _NS("Fullscreen")];
     [_voutMenusnapshot setTitle: _NS("Snapshot")];
-
-    [_specificTime_cancelButton setTitle: _NS("Cancel")];
-    [_specificTime_okButton setTitle: _NS("OK")];
-    [_specificTime_secLabel setStringValue: _NS("sec.")];
-    [_specificTime_goToLabel setStringValue: _NS("Jump to Time")];
-    [_specificTime_enterTextField setFormatter:[[PositionFormatter alloc] init]];
 }
 
 - (NSMenu *)setupPlaylistTableColumnsMenu
@@ -864,53 +864,27 @@
 
 - (IBAction)goToSpecificTime:(id)sender
 {
-    if (sender == _specificTime_cancelButton)
-    {
-        [NSApp endSheet: _specificTimeWindow];
-        [_specificTimeWindow close];
-    } else if (sender == _specificTime_okButton) {
-        input_thread_t *p_input = pl_CurrentInput(VLCIntf);
-        if (p_input) {
-            int64_t timeInSec = 0;
-            NSString *fieldContent = [_specificTime_enterTextField stringValue];
-            if ([[fieldContent componentsSeparatedByString: @":"] count] > 1 &&
-                [[fieldContent componentsSeparatedByString: @":"] count] <= 3) {
-                NSArray *ourTempArray = \
-                [fieldContent componentsSeparatedByString: @":"];
-
-                if ([[fieldContent componentsSeparatedByString: @":"] count] == 3) {
-                    timeInSec += ([[ourTempArray firstObject] intValue] *3600); //h
-                    timeInSec += ([[ourTempArray objectAtIndex:1] intValue] *60); //m
-                    timeInSec += [[ourTempArray objectAtIndex:2] intValue];        //s
-                } else {
-                    timeInSec += ([[ourTempArray firstObject] intValue] *60); //m
-                    timeInSec += [[ourTempArray objectAtIndex:1] intValue]; //s
-                }
+    input_thread_t *p_input = pl_CurrentInput(VLCIntf);
+    if (p_input) {
+        /* we can obviously only do that if an input is available */
+        int64_t length = var_GetInteger(p_input, "length");
+        [_timeSelectionPanel setMaxValue:(length / CLOCK_FREQ)];
+        int64_t pos = var_GetInteger(p_input, "time");
+        [_timeSelectionPanel setJumpTimeValue: (pos / CLOCK_FREQ)];
+        [_timeSelectionPanel runModalForWindow:[NSApp mainWindow]
+                             completionHandler:^(NSInteger returnCode, int64_t returnTime) {
+
+            if (returnCode != NSOKButton)
+                return;
+
+            input_thread_t *p_input = pl_CurrentInput(VLCIntf);
+            if (p_input) {
+                input_Control(p_input, INPUT_SET_TIME, (int64_t)(returnTime *1000000));
+                vlc_object_release(p_input);
             }
-            else
-                timeInSec = [fieldContent intValue];
-
-            input_Control(p_input, INPUT_SET_TIME, (int64_t)(timeInSec *1000000));
-            vlc_object_release(p_input);
-        }
+        }];
 
-        [NSApp endSheet: _specificTimeWindow];
-        [_specificTimeWindow close];
-    } else {
-        input_thread_t *p_input = pl_CurrentInput(VLCIntf);
-        if (p_input) {
-            /* we can obviously only do that if an input is available */
-            int64_t pos, length;
-            length = var_GetInteger(p_input, "length");
-            [_specificTime_stepper setMaxValue: (length / CLOCK_FREQ)];
-            pos = var_GetInteger(p_input, "time");
-            [self setJumpTimeValue: (pos / CLOCK_FREQ)];
-            [NSApp beginSheet: _specificTimeWindow modalForWindow: \
-             [NSApp mainWindow] modalDelegate: self didEndSelector: nil \
-                  contextInfo: nil];
-            [_specificTimeWindow makeKeyWindow];
-            vlc_object_release(p_input);
-        }
+        vlc_object_release(p_input);
     }
 }
 
diff --git a/modules/gui/macosx/Makefile.am b/modules/gui/macosx/Makefile.am
index b9c2bf759118728729011fd036f3a2938e8b8eaf..928f24e249710a3fe1c7f9ba68594b793631890e 100644
--- a/modules/gui/macosx/Makefile.am
+++ b/modules/gui/macosx/Makefile.am
@@ -70,6 +70,7 @@ libmacosx_plugin_la_SOURCES = \
 	TrackSynchronization.h TrackSynchronization.m \
 	VideoEffects.h VideoEffects.m \
 	VideoView.h VideoView.m \
+	VLCTimeSelectionPanelController.h VLCTimeSelectionPanelController.m \
 	VLCUIWidgets.h VLCUIWidgets.m \
 	VLCVoutWindowController.h VLCVoutWindowController.m \
 	Windows.h Windows.m
diff --git a/modules/gui/macosx/VLCTimeSelectionPanelController.h b/modules/gui/macosx/VLCTimeSelectionPanelController.h
new file mode 100644
index 0000000000000000000000000000000000000000..5248c88c7b281ad0fc9d383aefcbd97cacb62247
--- /dev/null
+++ b/modules/gui/macosx/VLCTimeSelectionPanelController.h
@@ -0,0 +1,53 @@
+/*****************************************************************************
+ * TimeSelectionPanelController.h: Controller for time selection panel
+ *****************************************************************************
+ * Copyright (C) 2015 VideoLAN and authors
+ * Author:       David Fuhrmann <david dot fuhrmann at googlemail dot com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ *****************************************************************************/
+
+#import <Cocoa/Cocoa.h>
+
+@interface VLCTimeSelectionPanelController : NSWindowController
+
+@property (readwrite, weak) IBOutlet NSButton *cancelButton;
+@property (readwrite, weak) IBOutlet NSTextField *textField;
+@property (readwrite, weak) IBOutlet NSTextField *goToLabel;
+@property (readwrite, weak) IBOutlet NSButton *okButton;
+@property (readwrite, weak) IBOutlet NSTextField *secsLabel;
+@property (readwrite, weak) IBOutlet NSStepper *stepper;
+
+@property (nonatomic) int jumpTimeValue;
+@property (nonatomic) int maxValue;
+
+- (IBAction)buttonPressed:(id)sender;
+
+/**
+ * Completion handler for textfield panel
+ * \param returnCode Result from panel. Can be NSOKButton or NSCancelButton.
+ * \param returnTime Resulting time in seconds entered in panel.
+ */
+typedef void(^TimeSelectionCompletionHandler)(NSInteger returnCode, int64_t returnTime);
+
+/**
+ * Shows the panel as a modal dialog with window as its owner.
+ * \param window Parent window for the dialog.
+ * \param handler Completion block.
+ */
+- (void)runModalForWindow:(NSWindow *)window completionHandler:(TimeSelectionCompletionHandler)handler;
+
+
+@end
\ No newline at end of file
diff --git a/modules/gui/macosx/VLCTimeSelectionPanelController.m b/modules/gui/macosx/VLCTimeSelectionPanelController.m
new file mode 100644
index 0000000000000000000000000000000000000000..5beb204cb5c6bb9ef09a10474d3b08ee055c80b7
--- /dev/null
+++ b/modules/gui/macosx/VLCTimeSelectionPanelController.m
@@ -0,0 +1,98 @@
+/*****************************************************************************
+ * TimeSelectionPanelController.m: Controller for time selection panel
+ *****************************************************************************
+ * Copyright (C) 2015 VideoLAN and authors
+ * Author:       David Fuhrmann <david dot fuhrmann at googlemail dot com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ *****************************************************************************/
+
+#import "VLCTimeSelectionPanelController.h"
+
+#import "misc.h"
+#import "StringUtility.h"
+
+@interface VLCTimeSelectionPanelController()
+{
+    TimeSelectionCompletionHandler _completionHandler;
+}
+
+@end
+
+@implementation VLCTimeSelectionPanelController
+
+#pragma mark - object handling
+
+- (id)init
+{
+    self = [super initWithWindowNibName:@"TimeSelectionPanel"];
+
+    return self;
+}
+
+
+#pragma mark - UI handling
+
+- (void)windowDidLoad
+{
+    [_cancelButton setTitle: _NS("Cancel")];
+    [_okButton setTitle: _NS("OK")];
+    [_secsLabel setStringValue: _NS("sec.")];
+    [_goToLabel setStringValue: _NS("Jump to Time")];
+    [_textField setFormatter:[[PositionFormatter alloc] init]];
+}
+
+- (IBAction)buttonPressed:(id)sender
+{
+    [self.window orderOut:sender];
+    [NSApp endSheet: self.window];
+
+    // calculate resulting time in secs:
+    int64_t timeInSec = 0;
+    NSString *string = [_textField stringValue];
+    if ([[string componentsSeparatedByString: @":"] count] > 1 &&
+        [[string componentsSeparatedByString: @":"] count] <= 3) {
+        NSArray *ourTempArray = \
+        [string componentsSeparatedByString: @":"];
+
+        if ([[string componentsSeparatedByString: @":"] count] == 3) {
+            timeInSec += ([[ourTempArray firstObject] intValue] *3600); //h
+            timeInSec += ([[ourTempArray objectAtIndex:1] intValue] *60); //m
+            timeInSec += [[ourTempArray objectAtIndex:2] intValue];        //s
+        } else {
+            timeInSec += ([[ourTempArray firstObject] intValue] *60); //m
+            timeInSec += [[ourTempArray objectAtIndex:1] intValue]; //s
+        }
+    }
+    else
+        timeInSec = [string intValue];
+
+    if (_completionHandler)
+        _completionHandler(sender == _okButton ? NSOKButton : NSCancelButton, timeInSec);
+}
+
+- (void)runModalForWindow:(NSWindow *)window completionHandler:(TimeSelectionCompletionHandler)handler
+{
+    [self window];
+    [_stepper setMaxValue:self.maxValue];
+
+    _completionHandler = [handler copy];
+    [NSApp beginSheet:self.window
+       modalForWindow:window modalDelegate:self
+       didEndSelector:nil
+          contextInfo:nil];
+}
+
+@end
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 5a73bf162a1dc82d0a9a3d66fba8384ac8da322d..3b6ea6c47309c4bd5d12eb8bb15cebbb4fb494aa 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -614,6 +614,8 @@ modules/gui/macosx/VideoEffects.h
 modules/gui/macosx/VideoEffects.m
 modules/gui/macosx/VideoView.h
 modules/gui/macosx/VideoView.m
+modules/gui/macosx/VLCTimeSelectionPanelController.h
+modules/gui/macosx/VLCTimeSelectionPanelController.m
 modules/gui/macosx/VLCVoutWindowController.h
 modules/gui/macosx/VLCVoutWindowController.m
 modules/gui/macosx/Windows.h