No longer checking for correct iData in code.

diff --git a/multimedia/time.c b/multimedia/time.c
index 4502cf1..be881fe 100644
--- a/multimedia/time.c
+++ b/multimedia/time.c
@@ -124,7 +124,7 @@
 {
     LPWINE_MM_IDATA	iData = MULTIMEDIA_GetIData();
 
-    if (!iData || IsBadWritePtr(iData, sizeof(WINE_MM_IDATA))) {
+    if (IsBadWritePtr(iData, sizeof(WINE_MM_IDATA))) {
 	ERR("iData is not correctly set, please report. Expect failure.\n");
 	return 0;
     }
@@ -149,18 +149,13 @@
  */
 MMRESULT WINAPI timeGetSystemTime(LPMMTIME lpTime, UINT wSize)
 {
-    LPWINE_MM_IDATA	iData;
-
     TRACE("(%p, %u);\n", lpTime, wSize);
 
     if (wSize >= sizeof(*lpTime)) {
-	iData = MULTIMEDIA_MMTimeStart();
-	if (!iData)
-	    return MMSYSERR_NOMEM;
 	lpTime->wType = TIME_MS;
-	lpTime->u.ms = iData->mmSysTimeMS;
+	lpTime->u.ms = MULTIMEDIA_MMTimeStart()->mmSysTimeMS;
 
-	TRACE("=> %lu\n", iData->mmSysTimeMS);
+	TRACE("=> %lu\n", lpTime->u.ms);
     }
 
     return 0;
@@ -171,18 +166,13 @@
  */
 MMRESULT16 WINAPI timeGetSystemTime16(LPMMTIME16 lpTime, UINT16 wSize)
 {
-    LPWINE_MM_IDATA	iData;
-
     TRACE("(%p, %u);\n", lpTime, wSize);
 
     if (wSize >= sizeof(*lpTime)) {
-	iData = MULTIMEDIA_MMTimeStart();
-	if (!iData)
-	    return MMSYSERR_NOMEM;
 	lpTime->wType = TIME_MS;
-	lpTime->u.ms = iData->mmSysTimeMS;
+	lpTime->u.ms = MULTIMEDIA_MMTimeStart()->mmSysTimeMS;
 
-	TRACE("=> %lu\n", iData->mmSysTimeMS);
+	TRACE("=> %lu\n", lpTime->u.ms);
     }
 
     return 0;
@@ -210,9 +200,6 @@
 
     iData = MULTIMEDIA_MMTimeStart();
 
-    if (!iData)
-	return 0;
-
     lpNewTimer->uCurTime = wDelay;
     lpNewTimer->wDelay = wDelay;
     lpNewTimer->wResol = wResol;
@@ -381,5 +368,13 @@
  */
 DWORD WINAPI timeGetTime(void)
 {
+    /* FIXME: releasing the win16 lock here is a temporary hack (I hope)
+     * that lets mciavi.drv run correctly
+     */
+    if ( _ConfirmWin16Lock() ) {
+	SYSLEVEL_ReleaseWin16Lock();
+	SYSLEVEL_RestoreWin16Lock();
+    }
+
     return MULTIMEDIA_MMTimeStart()->mmSysTimeMS;
 }